summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2013-12-04 16:08:21 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2013-12-04 16:08:21 -0500
commit22800ae936f67b7d0e4c565061aa24d99a4f1010 (patch)
tree3ed9617dc5c843d73df7f515314a844a3da9967a
parentc521fe29239fc4c6efb16e4854bb02f819c5fc13 (diff)
downloademacs-22800ae936f67b7d0e4c565061aa24d99a4f1010.tar.gz
emacs-22800ae936f67b7d0e4c565061aa24d99a4f1010.tar.bz2
emacs-22800ae936f67b7d0e4c565061aa24d99a4f1010.zip
* src/window.c (select_window): Call second wset_redisplay before we change
selected_window. Fixes: debbugs:16034
-rw-r--r--src/ChangeLog5
-rw-r--r--src/window.c11
2 files changed, 11 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 76b112b3344..c88f48af517 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * window.c (select_window): Call second wset_redisplay before we change
+ selected_window (bug#16034).
+
2013-12-04 Paul Eggert <eggert@cs.ucla.edu>
* bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
diff --git a/src/window.c b/src/window.c
index 9a943129984..d1f3dd599b1 100644
--- a/src/window.c
+++ b/src/window.c
@@ -487,11 +487,14 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
goto record_and_return;
if (NILP (norecord))
- /* Mark the window for redisplay since the selected-window has a different
- mode-line. */
- wset_redisplay (XWINDOW (selected_window));
+ { /* Mark the window for redisplay since the selected-window has
+ a different mode-line. */
+ wset_redisplay (XWINDOW (selected_window));
+ wset_redisplay (w);
+ }
else
redisplay_other_windows ();
+
sf = SELECTED_FRAME ();
if (XFRAME (WINDOW_FRAME (w)) != sf)
{
@@ -510,8 +513,6 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
select_window_1 (window, inhibit_point_swap);
bset_last_selected_window (XBUFFER (w->contents), window);
- if (NILP (norecord))
- wset_redisplay (w);
record_and_return:
/* record_buffer can run QUIT, so make sure it is run only after we have