changeset 10911:83fb3fdeda96

(display_mode_line): Temporarily set current_perdisplay to reference the frame we're updating.
author Karl Heuer <kwzh@gnu.org>
date Fri, 03 Mar 1995 06:41:20 +0000
parents b0edc245c9b7
children be434b59c22e
files src/xdisp.c
diffstat 1 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Fri Mar 03 05:02:50 1995 +0000
+++ b/src/xdisp.c	Fri Mar 03 06:41:20 1995 +0000
@@ -2953,8 +2953,20 @@
   w->column_number_displayed = Qnil;
 
   get_display_line (f, vpos, left);
-  display_mode_element (w, vpos, left, 0, right, right,
-			current_buffer->mode_line_format);
+#ifdef MULTI_PERDISPLAY
+  {
+    /* Sigh, mode-line-format can reference display-local variables like
+       defining-kbd-macro.  Use the one associated with the frame we're
+       updating.  */
+    PERDISPLAY *orig_perdisplay = current_perdisplay;
+    current_perdisplay = get_perdisplay (f);
+#endif
+    display_mode_element (w, vpos, left, 0, right, right,
+			  current_buffer->mode_line_format);
+#ifdef MULTI_PERDISPLAY
+    current_perdisplay = orig_perdisplay;
+  }
+#endif
   FRAME_DESIRED_GLYPHS (f)->bufp[vpos] = 0;
 
   /* Make the mode line inverse video if the entire line