* src/xdisp.c (display_mode_lines): Keep selected_window and selected_frame

in sync.
This commit is contained in:
Stefan Monnier 2012-12-14 10:52:43 -05:00
parent 26ec1f49cb
commit ad966fe754
2 changed files with 7 additions and 5 deletions

View file

@ -1,7 +1,7 @@
2012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
* xdisp.c (select_frame_for_redisplay): Keep selected_window and
selected_frame in sync.
* xdisp.c (select_frame_for_redisplay, display_mode_lines):
Keep selected_window and selected_frame in sync.
2012-12-14 Eli Zaretskii <eliz@gnu.org>

View file

@ -20354,12 +20354,13 @@ redisplay_mode_lines (Lisp_Object window, int force)
static int
display_mode_lines (struct window *w)
{
Lisp_Object old_selected_window, old_selected_frame;
Lisp_Object old_selected_window = selected_window;
Lisp_Object old_selected_frame = selected_frame;
Lisp_Object new_frame = w->frame;
Lisp_Object old_frame_selected_window = XFRAME (new_frame)->selected_window;
int n = 0;
old_selected_frame = selected_frame;
selected_frame = w->frame;
old_selected_window = selected_window;
XSETWINDOW (selected_window, w);
/* These will be set while the mode line specs are processed. */
@ -20383,6 +20384,7 @@ display_mode_lines (struct window *w)
++n;
}
XFRAME (new_frame)->selected_window = old_frame_selected_window;
selected_frame = old_selected_frame;
selected_window = old_selected_window;
return n;