changeset 108896:4a42850741ad

* window.el (pop-to-buffer): Remove the conditional that compares new-window and old-window, so it will reselect the selected window unconditionally. http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00078.html * window.c (Fselect_window): Move `record_buffer' up to the beginning of this function, so the buffer gets recorded even if the selected window does not change. http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00137.html
author Juri Linkov <juri@jurta.org>
date Mon, 07 Jun 2010 21:28:02 +0300
parents c4f9f87f04a2
children 68586a267c40
files lisp/ChangeLog lisp/window.el src/ChangeLog src/window.c
diffstat 4 files changed, 21 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Jun 07 12:35:57 2010 +0200
+++ b/lisp/ChangeLog	Mon Jun 07 21:28:02 2010 +0300
@@ -1,3 +1,10 @@
+2010-06-07  Martin Rudalics  <rudalics@gmx.at>
+
+	* window.el (pop-to-buffer): Remove the conditional that
+	compares new-window and old-window, so it will reselect
+	the selected window unconditionally.
+	http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00078.html
+
 2010-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* emacs-lisp/smie.el (smie-indent-offset-after)
--- a/lisp/window.el	Mon Jun 07 12:35:57 2010 +0200
+++ b/lisp/window.el	Mon Jun 07 21:28:02 2010 +0300
@@ -1220,19 +1220,16 @@
                (let ((buf (get-buffer-create buffer-or-name)))
                  (set-buffer-major-mode buf)
                  buf))))
-	(old-window (selected-window))
 	(old-frame (selected-frame))
 	new-window new-frame)
     (set-buffer buffer)
     (setq new-window (display-buffer buffer other-window))
-    (unless (eq new-window old-window)
-      ;; `display-buffer' has chosen another window, select it.
-      (select-window new-window norecord)
-      (setq new-frame (window-frame new-window))
-      (unless (eq new-frame old-frame)
-	;; `display-buffer' has chosen another frame, make sure it gets
-	;; input focus and is risen.
-	(select-frame-set-input-focus new-frame)))
+    (select-window new-window norecord)
+    (setq new-frame (window-frame new-window))
+    (unless (eq new-frame old-frame)
+      ;; `display-buffer' has chosen another frame, make sure it gets
+      ;; input focus and is risen.
+      (select-frame-set-input-focus new-frame))
     buffer))
 
 ;; I think this should be the default; I think people will prefer it--rms.
--- a/src/ChangeLog	Mon Jun 07 12:35:57 2010 +0200
+++ b/src/ChangeLog	Mon Jun 07 21:28:02 2010 +0300
@@ -1,3 +1,10 @@
+2010-06-07  Martin Rudalics  <rudalics@gmx.at>
+
+	* window.c (Fselect_window): Move `record_buffer' up to the
+	beginning of this function, so the buffer gets recorded
+	even if the selected window does not change.
+	http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00137.html
+
 2010-06-07  Juanma Barranquero  <lekktu@gmail.com>
 
 	* cmds.c (Fforward_char, Fbackward_char): Fix typos in docstrings.
--- a/src/window.c	Mon Jun 07 12:35:57 2010 +0200
+++ b/src/window.c	Mon Jun 07 21:28:02 2010 +0300
@@ -3611,6 +3611,7 @@
     {
       ++window_select_count;
       XSETFASTINT (w->use_time, window_select_count);
+      record_buffer (w->buffer);
     }
 
   if (EQ (window, selected_window))
@@ -3646,8 +3647,6 @@
 
   selected_window = window;
 
-  if (NILP (norecord))
-    record_buffer (w->buffer);
   Fset_buffer (w->buffer);
 
   XBUFFER (w->buffer)->last_selected_window = window;