From: Stefan Monnier Date: Fri, 14 Dec 2012 15:52:43 +0000 (-0500) Subject: * src/xdisp.c (display_mode_lines): Keep selected_window and selected_frame X-Git-Tag: emacs-24.3.90~173^2~7^2~590 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ad966fe7542070b5c9aa34ed019d586e7c3adae6;p=emacs.git * src/xdisp.c (display_mode_lines): Keep selected_window and selected_frame in sync. --- diff --git a/src/ChangeLog b/src/ChangeLog index 2e7c05e3d36..a35c51b8555 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,7 +1,7 @@ 2012-12-14 Stefan Monnier - * 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 diff --git a/src/xdisp.c b/src/xdisp.c index 4a47892a39f..f7fc75f8c25 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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;