Function: pdf-view-bookmark-jump-handler
pdf-view-bookmark-jump-handler is a natively compiled function defined
in pdf-view.el.
Signature
(pdf-view-bookmark-jump-handler BMK)
Documentation
The bookmark handler-function interface for bookmark BMK.
See also pdf-view-bookmark-make-record.
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-view.el
;;;###autoload
(defun pdf-view-bookmark-jump-handler (bmk)
"The bookmark handler-function interface for bookmark BMK.
See also `pdf-view-bookmark-make-record'."
(let* ((file (bookmark-prop-get bmk 'filename))
(buf (or (find-buffer-visiting file)
(find-file-noselect file)))
(buf-chg-fns-p (boundp 'window-buffer-change-functions))
(hook (if (and buf-chg-fns-p (not (get-buffer-window buf)))
'window-buffer-change-functions
'bookmark-after-jump-hook))
(show-fn-sym (make-symbol "pdf-show-buffer-function")))
(fset show-fn-sym
(lambda (&optional win)
(when (eq buf (current-buffer))
(with-selected-window
(or win
(get-buffer-window buf 0)
(selected-window))
(remove-hook hook show-fn-sym buf-chg-fns-p)
(unless (derived-mode-p 'pdf-view-mode)
(pdf-view-mode))
(when-let ((size (bookmark-prop-get
pdf-view--bookmark-to-restore 'size)))
(setq-local pdf-view-display-size size))
(when-let ((slice (bookmark-prop-get
pdf-view--bookmark-to-restore 'slice)))
(apply 'pdf-view-set-slice slice))
(when-let ((page (bookmark-prop-get
pdf-view--bookmark-to-restore 'page))
((numberp page)))
(pdf-view-goto-page page win))
(when-let ((origin (bookmark-prop-get
pdf-view--bookmark-to-restore 'origin))
(size (pdf-view-image-size t win)))
(image-set-window-hscroll
(round (/ (* (car origin) (car size))
(frame-char-width))))
(image-set-window-vscroll
(round (/ (* (cdr origin) (cdr size))
(if pdf-view-have-image-mode-pixel-vscroll
1
(frame-char-height))))))
(setq-local pdf-view--bookmark-to-restore nil)))))
(set-buffer buf)
(setq-local pdf-view--bookmark-to-restore bmk)
(add-hook hook show-fn-sym nil buf-chg-fns-p)))