]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/window.el (switch-to-prev-buffer): Do not switch to a visible
authorSam Steingold <sds@gnu.org>
Wed, 21 Mar 2012 16:01:18 +0000 (12:01 -0400)
committerSam Steingold <sds@gnu.org>
Wed, 21 Mar 2012 16:01:18 +0000 (12:01 -0400)
window previous buffer, just like with the frame previous buffers.

lisp/ChangeLog
lisp/window.el

index ea7d81bb969550a35e5aaef34ea55dda65b34159..50a9e61bf4c1c083c1c1d5256f5bb9158e33f9cc 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-21  Sam Steingold  <sds@gnu.org>
+
+       * window.el (switch-to-prev-buffer): Do not switch to a visible
+       window previous buffer, just like with the frame previous buffers.
+
 2012-03-21  Chong Yidong  <cyd@gnu.org>
 
        * faces.el (make-face, make-empty-face, copy-face):
index f79041e0e6ca6919fe7fd8ab3a59dbd61dc81e55..894d113cdc7920bbe5917701ea38f316d3bb958c 100644 (file)
@@ -2600,11 +2600,14 @@ shall not be switched to in future invocations of this command."
                       (not (setq killed-buffers
                                  (cons new-buffer killed-buffers))))
                   (not (eq new-buffer old-buffer))
-                  (or bury-or-kill
+                   (or bury-or-kill
                       (not (memq new-buffer next-buffers))))
-         (set-window-buffer-start-and-point
-          window new-buffer (nth 1 entry) (nth 2 entry))
-         (throw 'found t)))
+          (if (get-buffer-window new-buffer)
+             ;; Try to avoid showing a buffer visible in some other window.
+             (setq visible new-buffer)
+            (set-window-buffer-start-and-point
+             window new-buffer (nth 1 entry) (nth 2 entry))
+            (throw 'found t))))
       ;; Scan reverted buffer list of WINDOW's frame next, skipping
       ;; entries of next buffers.  Note that when we bury or kill a
       ;; buffer we don't reverse the global buffer list to avoid showing