diff --git a/src/ChangeLog b/src/ChangeLog index 76b112b33446ac453e61f6b692d9fa678abac78a..c88f48af5177919ed094b8d9f7098a9b73bb12e1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2013-12-04 Stefan Monnier + + * window.c (select_window): Call second wset_redisplay before we change + selected_window (bug#16034). + 2013-12-04 Paul Eggert * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used. diff --git a/src/window.c b/src/window.c index 9a9431299845ac1ec093353e17293bebb07fa6c7..d1f3dd599b1ec76d20cefe1441a09f01d924d2f7 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