Subject: Re: bug#47581: 27.1; tab-bar missed mouse clicks on MS-Windows

From: Eli Zaretskii <[email-masked]>
Date: Sun, 11 Apr 2021 12:21:31 +0300

> From: Juri Linkov <[email-masked]>
> Cc: Ioannis Kappas <[email-masked]>,  [email-masked]
> Date: Mon, 05 Apr 2021 02:00:47 +0300
> 
> > I think the actual problem is elsewhere: in handle_tab_bar_click.  It
> > includes code that was copied from handle_tool_bar_click, and which
> > pays attention to the value of mouse-highlight.  But tab-bar buttons
> > don't behave like tool-bar buttons in this regard: they don't respond
> > to moving the mouse pointer to them by "activating" the button.  So I
> > think that code should be removed from handle_tab_bar_click.  To wit:
> > turn mouse-highlight off (M-x set-variable RET mouse-highlight RET nil
> > RET), and clicks on tab-bar buttons miraculously start working with
> > 100% reliability.
> >
> > Juri, why is that code present in handle_tab_bar_click?  Is that just
> > a copy/paste from handle_tool_bar_click, or is there some reason for
> > that?  I'm talking about this logic, and the comments which describe
> > it, in handle_tab_bar_click:
> 
> Indeed, this code was copied from handle_tool_bar_click,
> but this extra logic was not removed because there are parts
> of the tab bar that should respond to moving the mouse pointer,
> namely the tab close buttons are activated when the mouse pointer
> is moved over them.  But I'm not sure if this feature is related
> to this code, or won't be affected by removing this code.

OK, I've fixed handle_tab_bar_click to not pay attention to
mouse-highlight, please see if there are any adverse side effects of
that change.

I also removed note_tab_bar_highlight and the code which called it.  I
couldn't find any place which depended on that, and there was no
visible effect of mouse-highlight on any part of the tab-bar buttons
that I could see.  If I missed something, please show a recipe where
this highlight had any effect before my changes.

(It _is_ possible to have the tab-bar buttons react to mouse pointer
movements, but for that we need support in display code, which isn't
there.  If we will ever want to add mouse sensitivity to tab-bar
buttons, we should first add code which displays those buttons
differently when the draw_glyphs_face value is DRAW_MOUSE_FACE or
DRAW_IMAGE_SUNKEN/RAISED; then we'd want to resurrect
note_tab_bar_highlight that I deleted.)