summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1995-03-03 06:41:20 +0000
committerKarl Heuer <kwzh@gnu.org>1995-03-03 06:41:20 +0000
commita9cc8174a22953fc5629c1b85e722aefe6026650 (patch)
treef41be2d812c89fa2bdadb68aab017ced4fd12cfa
parent8b97da83a7bb3123653e7d580e901b781082c30d (diff)
downloademacs-a9cc8174a22953fc5629c1b85e722aefe6026650.tar.gz
(display_mode_line): Temporarily set current_perdisplay to reference the frame
we're updating.
-rw-r--r--src/xdisp.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 9c9dbe878a6..d21e1db5d41 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -2953,8 +2953,20 @@ display_mode_line (w)
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