Fix mouse highlight with tab-line on TTY frames

* src/xdisp.c (note_mode_line_or_margin_highlight):
* src/dispnew.c (mode_line_string): Fix mouse highlight on TTY
frames when both header line and tab-line are displayed.
(Bug#37807)
This commit is contained in:
Eli Zaretskii 2019-10-18 18:48:31 +03:00
parent 5fd1c086e7
commit 2c9128ce13
2 changed files with 19 additions and 2 deletions

View file

@ -5517,7 +5517,15 @@ mode_line_string (struct window *w, enum window_part part,
else if (part == ON_TAB_LINE)
row = MATRIX_TAB_LINE_ROW (w->current_matrix);
else
row = MATRIX_HEADER_LINE_ROW (w->current_matrix);
{
row = MATRIX_HEADER_LINE_ROW (w->current_matrix);
/* On TTY frames the matrix's tab_line_p flag is not set
(FIXME!), so we need to adjust by hand. */
if (!FRAME_WINDOW_P (XFRAME (w->frame))
&& window_wants_tab_line (w))
row++;
}
y0 = *y - row->y;
*y = row - MATRIX_FIRST_TEXT_ROW (w->current_matrix);

View file

@ -32492,6 +32492,11 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
? MATRIX_TAB_LINE_ROW (w->current_matrix)
: MATRIX_HEADER_LINE_ROW (w->current_matrix)));
/* On TTY frames the matrix's tab_line_p flag is not set
(FIXME!), so we need to adjust by hand. */
if (!FRAME_WINDOW_P (f) && area == ON_HEADER_LINE
&& window_wants_tab_line (w))
row++;
/* Find the glyph under the mouse pointer. */
if (row->mode_line_p && row->enabled_p)
{
@ -32706,7 +32711,11 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
? (w->current_matrix)->nrows - 1
: (area == ON_TAB_LINE
? 0
: (w->current_matrix->tab_line_p
: ((w->current_matrix->tab_line_p
/* The window_wants_tab_line test is for TTY
frames where the tab_line_p flag is not
set (FIXME!). */
|| window_wants_tab_line (w))
? 1
: 0)));