Subject: bug#76394: mouse-face property not working in tab-bar

From: Ship Mints <[email-masked]>
Date: Fri, 28 Feb 2025 16:43:46 -0500

It seemed natural to add tab-bar-tab-name-format-mouse-face function to
the tab-bar-tab-name-format-functions list.  See attached.

-Stephane

On Fri, Feb 28, 2025 at 3:35 PM Ship Mints <[email-masked]> wrote:

> On Fri, Feb 28, 2025 at 2:09 PM Ship Mints <[email-masked]> wrote:
>
>> Another patch rev attached.
>>
>> On Fri, Feb 28, 2025 at 2:04 PM Ship Mints <[email-masked]> wrote:
>>
>>> On Fri, Feb 28, 2025 at 2:00 PM Eli Zaretskii <[email-masked]> wrote:
>>>
>>>> >
>>>> > So we'll be super duper defensive, then.  Should I leave the "future"
>>>> code in place after the assertion or do
>>>> > you think it's easy enough to recreate if/when needed?
>>>>
>>>> I'd prefer to avoid testing for a condition that is always true.
>>>>
>>>
>>> I'll remove the code.  It's in the archive in older patches, if ever
>>> needed.
>>>
>>> >    * lisp/tab-bar.el (tab-bar-tab-highlight): New face.
>>>> >
>>>> > I'll update.
>>>> >
>>>> >  But I have a question: why add this face if there's no code that uses
>>>> >  it?  Or what did I miss?
>>>> >
>>>> >  > -  bool close_p;
>>>> >  > -  enum draw_glyphs_face draw = DRAW_IMAGE_RAISED;
>>>> >  > -  int rc;
>>>> >  > +    Lisp_Object window = f->tab_bar_window;
>>>> >  > +    struct window *w = XWINDOW (window);
>>>> >  > +    Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
>>>> >
>>>> > The idea is that now that there's mouse-face support, people can
>>>> customize a dedicated face for tab-bar
>>>> > tabs.  This is in line with tab-line tabs and its highlight face.
>>>>
>>>> Sounds strange to me to have a face that no other code uses.  I would
>>>> understand if this face was by default identical to the 'default'
>>>> face, and was used by the tab bar.
>>>>
>>>
>>> I will ask Prot to theme this face in modus-themes so it will be used
>>> there.
>>>
>>
> I will do two more things for the next patch.  I will add NEWS.  I will
> also use the new face as the default mouse-face
> in tab-bar-tab-name-format-face.  I suppose we could add
> a tab-bar-tab-name-format-mouse-face function to
> the tab-bar-tab-name-format-functions list.  What do you/Juri think?
>