branch: externals/polymode commit b384eec4ce3fd989302b25c4b9c94cbebdc993b7 Author: vitalie <vitalie.sp...@adyen.com> Commit: Vitalie Spinu <spinu...@gmail.com>
Use set-window-buffer instead of switch_to_buffer in pm--select-existing-buffer-visibly As recomended by Stefan Monnier https://lists.gnu.org/archive/html/emacs-devel/2025-05/msg00747.html --- polymode-core.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/polymode-core.el b/polymode-core.el index ad2757eddc..d33e812796 100644 --- a/polymode-core.el +++ b/polymode-core.el @@ -1099,11 +1099,15 @@ switch." (pm--move-overlays old-buffer new-buffer) - ;; make sure we display in the same window as the old buffer (#337) - (let ((switch-to-buffer-obey-display-actions)) - (switch-to-buffer new-buffer nil 'force-same-window)) + (let ((strongly-dedicated-flag (window-dedicated-p))) + (when strongly-dedicated-flag + (set-window-dedicated-p nil nil)) + (set-window-buffer nil new-buffer 'keep-margins) + (when strongly-dedicated-flag + (set-window-dedicated-p nil strongly-dedicated-flag))) (bury-buffer-internal old-buffer) + ;; remove old-buffer form window-prev-buffers (set-window-prev-buffers nil (assq-delete-all old-buffer (window-prev-buffers nil))) ;; if header line is active in some modes, make it active everywhere