emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r104828: * lisp/window.el (bury-buffe


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104828: * lisp/window.el (bury-buffer): Don't iconify the only frame.
Date: Thu, 30 Jun 2011 23:48:44 -0400
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104828
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2011-06-30 23:48:44 -0400
message:
  * lisp/window.el (bury-buffer): Don't iconify the only frame.
  (switch-to-buffer): Revert to Emacs<23 behavior, i.e. do not fallback
  to pop-to-buffer.  Use pop-to-buffer-same-frame if you don't like that.
modified:
  lisp/ChangeLog
  lisp/window.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-07-01 03:38:28 +0000
+++ b/lisp/ChangeLog    2011-07-01 03:48:44 +0000
@@ -1,7 +1,13 @@
+2011-07-01  Stefan Monnier  <address@hidden>
+
+       * window.el (bury-buffer): Don't iconify the only frame.
+       (switch-to-buffer): Revert to Emacs<23 behavior, i.e. do not fallback
+       to pop-to-buffer.  Use pop-to-buffer-same-frame if you don't like that.
+
 2011-07-01  Chong Yidong  <address@hidden>
 
-       * eshell/em-smart.el (eshell-smart-display-navigate-list): Add
-       mouse-yank-primary.
+       * eshell/em-smart.el (eshell-smart-display-navigate-list):
+       Add mouse-yank-primary.
 
 2011-07-01  Teodor Zlatanov  <address@hidden>
 

=== modified file 'lisp/window.el'
--- a/lisp/window.el    2011-06-29 12:06:08 +0000
+++ b/lisp/window.el    2011-07-01 03:48:44 +0000
@@ -2802,7 +2802,9 @@
      ((or buffer-or-name (not (eq buffer (window-buffer)))))
      ((not (window-dedicated-p))
       (switch-to-prev-buffer nil 'bury))
-     ((frame-root-window-p (selected-window))
+     ((and (frame-root-window-p (selected-window))
+           ;; Don't iconify if it's the only frame.
+           (not (eq (next-frame nil 0) (selected-frame))))
       (iconify-frame (window-frame (selected-window))))
      ((window-deletable-p)
       (delete-window)))
@@ -5944,20 +5946,18 @@
   (interactive
    (list (read-buffer-to-switch "Switch to buffer: ")))
   (let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name)))
-    (if (and (or (window-minibuffer-p) (eq (window-dedicated-p) t))
-            (not (eq buffer (window-buffer))))
-       ;; Cannot switch to another buffer in a minibuffer or strongly
-       ;; dedicated window that does not show the buffer already.  Call
-       ;; `pop-to-buffer' instead.
-       (pop-to-buffer buffer 'same-window norecord)
-      (unless (eq buffer (window-buffer))
-       ;; I'm not sure why we should NOT call `set-window-buffer' here,
-       ;; but let's keep things as they are (otherwise we could always
-       ;; call `pop-to-buffer-same-window' here).
-       (set-window-buffer nil buffer))
-      (unless norecord
-       (select-window (selected-window)))
-      (set-buffer buffer))))
+    (cond
+     ;; Don't call set-window-buffer if it's not needed since it
+     ;; might signal an error (e.g. if the window is dedicated).
+     ((eq buffer (window-buffer)) nil)
+     ((window-minibuffer-p)
+      (error "Cannot switch buffers in minibuffer window"))
+     ((eq (window-dedicated-p) t)
+      (error "Cannot switch buffers in a dedicated window"))
+     (t (set-window-buffer nil buffer)))
+    (unless norecord
+      (select-window (selected-window)))
+    (set-buffer buffer)))
 
 (defun switch-to-buffer-same-frame (buffer-or-name &optional norecord)
   "Switch to buffer BUFFER-OR-NAME in a window on the selected frame.


reply via email to

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