[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#32850: 27.0.50; window-swap-states doesn't swap window prev/next-buf

From: Juri Linkov
Subject: bug#32850: 27.0.50; window-swap-states doesn't swap window prev/next-buffers
Date: Wed, 31 Oct 2018 23:25:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu)

> So you want to elide this part because 'delete-other-windows' below
> handles it?  But the latter respects the 'no-delete-other-windows'
> parameter too which might be unwanted in the state putting mechanism.

Then is this right?

diff --git a/lisp/window.el b/lisp/window.el
index bcd4fa2959..346096c2f8 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -5898,20 +5898,12 @@ window-state-put
 windows can get as small as `window-safe-min-height' and
   (setq window-state-put-stale-windows nil)
-  (setq window (window-normalize-window window))
-  ;; When WINDOW is internal, reduce it to a live one to put STATE into,
-  ;; see Bug#16793.
+  ;; When WINDOW is internal or nil, create a new window.
   (unless (window-live-p window)
-    (let ((root window))
-      (setq window (catch 'live
-                     (walk-window-subtree
-                      (lambda (window)
-                        (when (and (window-live-p window)
-                                   (not (window-parameter window 
-                          (throw 'live window)))
-                      root)))
-      (delete-other-windows-internal window root)))
+    (delete-other-windows-internal)
+    (setq window (split-window))
+    (delete-window))
   (set-window-dedicated-p window nil)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]