changeset 29291:4849a9a666ab

(redisplay_window): Really switch buffers when displaying mode lines, and temporarily set selected_frame to the frame of the window that's redisplayed.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 29 May 2000 15:51:23 +0000
parents 181d214fe71c
children 98b8559aeb74
files src/xdisp.c
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon May 29 15:50:01 2000 +0000
+++ b/src/xdisp.c	Mon May 29 15:51:23 2000 +0000
@@ -9201,7 +9201,20 @@
        && (WINDOW_WANTS_MODELINE_P (w)
 	   || WINDOW_WANTS_HEADER_LINE_P (w)))
     {
+      Lisp_Object old_selected_frame;
+      
+      old_selected_frame = selected_frame;
+      
+      if (!really_switched_buffer)
+	{
+	  set_buffer_temp (old);
+	  set_buffer_internal_1 (XBUFFER (w->buffer));
+	  really_switched_buffer = 1;
+	}
+      
+      XSETFRAME (selected_frame, f);
       display_mode_lines (w);
+      selected_frame = old_selected_frame;
 
       /* If mode line height has changed, arrange for a thorough
 	 immediate redisplay using the correct mode line height.  */