emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-28 8358da9 2/2: Display a tab bar item as sunken when appropriate


From: Juri Linkov
Subject: emacs-28 8358da9 2/2: Display a tab bar item as sunken when appropriate
Date: Wed, 20 Oct 2021 12:42:56 -0400 (EDT)

branch: emacs-28
commit 8358da9c4c9079b93daffc1aebf3ea5e52b98593
Author: Po Lu <luangruo@yahoo.com>
Commit: Juri Linkov <juri@linkov.net>

    Display a tab bar item as sunken when appropriate
    
    When the mouse pointer is pressed on the tab bar, moved out of the tab
    bar, and moved back in, it would be more appropriate to behave like
    other programs by displaying the item as sunken.
    
    * src/xdisp.c (note_tab_bar_highlight): Display item as sunken if the
    mouse pointer returns to the tab bar down.
---
 src/xdisp.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index 97ba672..436153b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13861,12 +13861,17 @@ note_tab_bar_highlight (struct frame *f, int x, int y)
 
   bool mouse_down_p = false;
 #ifndef HAVE_NS
-  /* Mouse is down, but on different tab-bar item?  */
+  /* Mouse is down, but on different tab-bar item?  Or alternatively,
+     the mouse might've been pressed somewhere we don't know about,
+     and then have moved onto the tab bar.  In this case,
+     last_tab_bar_item is -1, so we DTRT and behave like other
+     programs by displaying the item as sunken. */
   Display_Info *dpyinfo = FRAME_DISPLAY_INFO (f);
   mouse_down_p = (gui_mouse_grabbed (dpyinfo)
                  && f == dpyinfo->last_mouse_frame);
 
-  if (mouse_down_p && f->last_tab_bar_item != prop_idx)
+  if (mouse_down_p && f->last_tab_bar_item != prop_idx
+      && f->last_tab_bar_item != -1)
     return;
 #endif
   draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]