diff options
author | Richard M. Stallman <[email protected]> | 1995-04-10 07:57:44 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 1995-04-10 07:57:44 +0000 |
commit | 03b294dcb04fce72ceaef6e0c93e315634694b92 (patch) | |
tree | c58a0af3bec5581eb37b99f3eba5dd55ec2e96ab /src/xdisp.c | |
parent | 0e78b377327d0c9b7d9b80a10c677c1a215ab0c0 (diff) |
(display_mode_line): Use push_frame_kboard, pop_frame_kboard.
(display_mode_line): Test mode_line_inverse_video
before highlighting partial-width mode line.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r-- | src/xdisp.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 28db5d3bd2..f8be6628b0 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2989,20 +2989,17 @@ display_mode_line (w) w->column_number_displayed = Qnil; get_display_line (f, vpos, left); -#ifdef MULTI_KBOARD - { - /* Sigh, mode-line-format can reference kboard-local variables like - defining-kbd-macro. Use the one associated with the frame we're - updating. */ - KBOARD *orig_kboard = current_kboard; - current_kboard = FRAME_KBOARD (f); -#endif - display_mode_element (w, vpos, left, 0, right, right, - current_buffer->mode_line_format); -#ifdef MULTI_KBOARD - current_kboard = orig_kboard; - } -#endif + + /* Temporarily make frame F's kboard the current kboard + so that kboard-local variables in the mode_line_format + will get the right values. */ + push_frame_kboard (f); + + display_mode_element (w, vpos, left, 0, right, right, + current_buffer->mode_line_format); + + pop_frame_kboard (); + FRAME_DESIRED_GLYPHS (f)->bufp[vpos] = 0; /* Make the mode line inverse video if the entire line @@ -3015,7 +3012,7 @@ display_mode_line (w) || XFASTINT (XWINDOW (w->parent)->width) == FRAME_WIDTH (f)) FRAME_DESIRED_GLYPHS (f)->highlight[vpos] = mode_line_inverse_video; #ifdef HAVE_FACES - else if (! FRAME_TERMCAP_P (f)) + else if (! FRAME_TERMCAP_P (f) && mode_line_inverse_video) { /* For a partial width window, explicitly set face of each glyph. */ int i; |