bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#16090: 24.3.50; [PATCH] error when jumping to a doc-view bookmark


From: Tassilo Horn
Subject: bug#16090: 24.3.50; [PATCH] error when jumping to a doc-view bookmark
Date: Mon, 09 Dec 2013 10:13:11 +0100
User-agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux)

Andreas Politz <politza@hochschule-trier.de> writes:

> $ emacs -Q some.pdf
>
> C-x r m RET
> C-x k RET
> C-x r b some.pdf RET
>
> Debugger entered--Lisp error: (wrong-type-argument listp t)
>   image-mode-winprops(nil)

Indeed.

> The reason is that the buffer is not yet displayed, when
> doc-view-bookmark-jump tries to change the page.  This results in, for
> obscure reasons, trying to change the page in which ever window is
> currently selected.  Solution: Defer changing the page after
> bookmark--jump-via has displayed the page.

Here's a simpler patch which does also seem to fix the problem by simply
using find-file instead of bookmark's default handler without requiring
a timer.

--8<---------------cut here---------------start------------->8---
=== modified file 'lisp/doc-view.el'
--- lisp/doc-view.el    2013-01-01 09:11:05 +0000
+++ lisp/doc-view.el    2013-12-09 08:55:30 +0000
@@ -1653,14 +1653,11 @@
 (defun doc-view-bookmark-jump (bmk)
   ;; This implements the `handler' function interface for record type
   ;; returned by `doc-view-bookmark-make-record', which see.
-  (prog1 (bookmark-default-handler bmk)
+  (prog1 (find-file (bookmark-get-filename bmk))
     (let ((page (bookmark-prop-get bmk 'page)))
       (when (not (eq major-mode 'doc-view-mode))
-        (doc-view-toggle-display))
-      (with-selected-window
-       (or (get-buffer-window (current-buffer) 0)
-          (selected-window))
-       (doc-view-goto-page page)))))
+       (doc-view-toggle-display))
+      (doc-view-goto-page page))))
--8<---------------cut here---------------end--------------->8---

Could you check if that also fixes the issue for you?

And a question concerning the procedure: since this is a fix for a bug
relative to emacs 23, should I commit it on the emacs-24 branch?

Bye,
Tassilo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]