]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix mouse highlight with tab-line on TTY frames
authorEli Zaretskii <eliz@gnu.org>
Fri, 18 Oct 2019 15:48:31 +0000 (18:48 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 18 Oct 2019 15:48:31 +0000 (18:48 +0300)
* 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)

src/dispnew.c
src/xdisp.c

index 4cdc76f5bcffee0c1024c40aa4838aa5207f29d4..47bf3c26cb27e68d49dd51faea8d675f4c9ddaa2 100644 (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);
 
index 30be492d9b4c3e53c51207673be6823a34c74e82..457fa4343f1c40e3cff5f6167725c7fd5170e5ec 100644 (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)));