]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/window.el (walk-windows): Simplify to use WINDOW arg of window-list-1
authorJuri Linkov <juri@linkov.net>
Thu, 19 Sep 2019 20:43:06 +0000 (23:43 +0300)
committerJuri Linkov <juri@linkov.net>
Thu, 19 Sep 2019 20:43:06 +0000 (23:43 +0300)
instead of calling select-window (bug#35385).

lisp/window.el

index cf733153b89b5003ba304f9b35b484d53ff0407b..620eacdd2903afc9c41a0091f327993990807113 100644 (file)
@@ -2217,6 +2217,10 @@ non-nil values of ALL-FRAMES have special meanings:
 
 - A frame means consider all windows on that frame only.
 
+If ALL-FRAMES specifies a frame, the first window walked is the
+first window on that frame (the one returned by `frame-first-window'),
+not necessarily the selected window.
+
 Anything else means consider all windows on the selected frame
 and no others.
 
@@ -2226,13 +2230,13 @@ windows nor the buffer list."
   ;; back to it.
   (when (window-minibuffer-p)
     (setq minibuf t))
-  ;; Make sure to not mess up the order of recently selected
-  ;; windows.  Use `save-selected-window' and `select-window'
-  ;; with second argument non-nil for this purpose.
+  ;; Use `save-selected-window' to prevent FUN from messing up
+  ;; the order of windows when it changes the selected window.
   (save-selected-window
-    (when (framep all-frames)
-      (select-window (frame-first-window all-frames) 'norecord))
-    (dolist (walk-windows-window (window-list-1 nil minibuf all-frames))
+    (dolist (walk-windows-window
+             (window-list-1 (and (framep all-frames)
+                                 (frame-first-window all-frames))
+                            minibuf all-frames))
       (funcall fun walk-windows-window))))
 
 (defun window-at-side-p (&optional window side)