From 27f46ba4b96947dedbafa6e4366a07fa171dbd2e Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Mon, 17 Jun 2024 16:48:43 +0200 Subject: [PATCH] (bookmark--jump-via): Ensure 'window-point' is set correctly * lisp/bookmark.el (bookmark--jump-via): Record bookmark-prescribed point before calling DISPLAY-FUNCTION, and use it to set 'window-point' afterwards. (Bug#71603) --- lisp/bookmark.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 06f8e24b518..223a7fedc8d 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1265,10 +1265,12 @@ After calling DISPLAY-FUNCTION, set window point to the point specified by BOOKMARK-NAME-OR-RECORD, if necessary, run `bookmark-after-jump-hook', and then show any annotations for this bookmark." (bookmark-handle-bookmark bookmark-name-or-record) - (save-current-buffer - (funcall display-function (current-buffer))) - (let ((win (get-buffer-window (current-buffer) 0))) - (if win (set-window-point win (point)))) + ;; Store `point' now, because `display-function' might change it. + (let ((point (point))) + (save-current-buffer + (funcall display-function (current-buffer))) + (let ((win (get-buffer-window (current-buffer) 0))) + (if win (set-window-point win point)))) ;; FIXME: we used to only run bookmark-after-jump-hook in ;; `bookmark-jump' itself, but in none of the other commands. (when bookmark-fringe-mark