Fix a bug in 'switch-to-buffer'
authorMartin Rudalics <rudalics@gmx.at>
Sun, 23 Jun 2024 08:26:57 +0000 (10:26 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Sun, 23 Jun 2024 08:26:57 +0000 (10:26 +0200)
* lisp/window.el (switch-to-buffer): When asked to switch to the
buffer of the selected window,
'switch-to-buffer-obey-display-actions' is non-nil and
'pop-to-buffer' uses the selected window, don't try to restore
window start and point from 'window-prev-buffers' (Bug#71616).

lisp/window.el

index cb2eea11d137cd66d6904eae838e804adc4eaac4..0dc9421fde75c3a54f8de983d73723a238a73d42 100644 (file)
@@ -9171,9 +9171,14 @@ Return the buffer switched to."
         (pop-to-buffer buffer norecord)))
      (t
       (when switch-to-buffer-obey-display-actions
-        (let ((selected-window (selected-window)))
+        (let* ((selected-window (selected-window))
+              (old-window-buffer (window-buffer selected-window)))
           (pop-to-buffer-same-window buffer norecord)
-          (when (eq (selected-window) selected-window)
+         ;; Do not ask for setting start and point when showing the
+         ;; same buffer in the old selected window (Bug#71616).
+          (when (and (eq (selected-window) selected-window)
+                    (not (eq (window-buffer selected-window)
+                             old-window-buffer)))
             (setq set-window-start-and-point t))))
 
       (when set-window-start-and-point