summaryrefslogtreecommitdiff
path: root/lisp/doc-view.el
diff options
context:
space:
mode:
authorTassilo Horn <tsdh@gnu.org>2014-04-04 19:42:55 +0200
committerTassilo Horn <tsdh@gnu.org>2014-04-04 19:42:55 +0200
commit3ccd4eafd3d51285b2d9eb4e5e83b3be20dbfe9f (patch)
treed355357d98979671bfb8431f3a4381b28149e72f /lisp/doc-view.el
parent114d739befb17f62f8927d6dfeb334cfca394671 (diff)
downloademacs-3ccd4eafd3d51285b2d9eb4e5e83b3be20dbfe9f.tar.gz
Fix bug#16090.
* lisp/doc-view.el (doc-view-bookmark-jump): Use `bookmark-after-jump-hook' to jump to the right page after the buffer is shown in a window.
Diffstat (limited to 'lisp/doc-view.el')
-rw-r--r--lisp/doc-view.el23
1 files changed, 13 insertions, 10 deletions
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 6706865e598..09d5925b3e2 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -1862,20 +1862,23 @@ See the command `doc-view-mode' for more information on this mode."
`((page . ,(doc-view-current-page))
(handler . doc-view-bookmark-jump))))
-
;;;###autoload
(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)
- (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)))))
-
+ (let ((page (bookmark-prop-get bmk 'page))
+ (show-fn-sym (make-symbol "doc-view-bookmark-after-jump-hook")))
+ (fset show-fn-sym
+ (lambda ()
+ (remove-hook 'bookmark-after-jump-hook show-fn-sym)
+ (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))))
+ (add-hook 'bookmark-after-jump-hook show-fn-sym)
+ (bookmark-default-handler bmk)))
(provide 'doc-view)