Mercurial > emacs
changeset 43242:e7ec5804aa1a
(CURRENT_MODE_LINE_FACE_ID_3): New macro.
(CURRENT_MODE_LINE_FACE_ID): Use it.
(Vmode_line_in_non_selected_windows): Declare extern.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Mon, 11 Feb 2002 14:42:56 +0000 |
parents | 5558e7582f1f |
children | 44adb09256a5 |
files | src/dispextern.h |
diffstat | 1 files changed, 25 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispextern.h Mon Feb 11 14:42:16 2002 +0000 +++ b/src/dispextern.h Mon Feb 11 14:42:56 2002 +0000 @@ -923,13 +923,32 @@ ? MATRIX_HEADER_LINE_ROW (MATRIX)->height \ : 0) -/* Return the desired face id for the mode line of window W. - This depends on whether the window is selected or not. */ +/* Return the desired face id for the mode line of a window, depending + on whether the window is selected or not, or if the window is the + scrolling window for the currently active minibuffer window. + + Due to the way display_mode_lines manipulates with the contents of + selected_window, this macro needs three arguments: SELW which is + compared against the current value of selected_window, MBW which is + compared against minibuf_window (if SELW doesn't match), and SCRW + which is compared against Vminibuf_scroll_window (if MBW matches). */ + +#define CURRENT_MODE_LINE_FACE_ID_3(SELW, MBW, SCRW) \ + ((NILP (Vmode_line_in_non_selected_windows) \ + || (SELW) == XWINDOW (selected_window) \ + || (EQ (Vmode_line_in_non_selected_windows, Qt) \ + && !NILP (Vminibuf_scroll_window) \ + && minibuf_level \ + && (MBW) == XWINDOW (minibuf_window) \ + && (SCRW) == XWINDOW (Vminibuf_scroll_window))) \ + ? MODE_LINE_FACE_ID \ + : MODE_LINE_INACTIVE_FACE_ID) + + +/* Return the desired face id for the mode line of window W. */ #define CURRENT_MODE_LINE_FACE_ID(W) \ - ((W) == XWINDOW (selected_window) \ - ? MODE_LINE_FACE_ID \ - : MODE_LINE_INACTIVE_FACE_ID) + (CURRENT_MODE_LINE_FACE_ID_3((W), XWINDOW (selected_window), (W))) /* Return the current height of the mode line of window W. If not known from current_mode_line_height, look at W's current glyph @@ -2227,6 +2246,7 @@ int tool_bar_item_info P_ ((struct frame *, struct glyph *, int *)); extern Lisp_Object Qtool_bar; extern Lisp_Object Vshow_trailing_whitespace; +extern Lisp_Object Vmode_line_in_non_selected_windows; extern int redisplaying_p; extern Lisp_Object Vimage_types; extern void add_to_log P_ ((char *, Lisp_Object, Lisp_Object));