Subject: bug#41343: tab-bar-mode: Close tab on mouse-2 click

From: Eli Zaretskii <[email-masked]>
Date: Fri, 06 Aug 2021 15:38:32 +0300

> From: Juri Linkov <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Fri, 06 Aug 2021 11:20:29 +0300
> 
> >> It's too late to change how keys are implemented for tab-bar.
> >> The tab-bar keymap contains such keys as 'tab-1' and 'C-tab-2',
> >> and clicking mouse-1 on tabs emits such events.  It doesn't emit
> >> 'mouse-1' and 'mouse-2'.
> >
> > How do we translate mouse clicks into the likes of C-tab-2?
> 
> When mouse-1 is clicked on the close button, then the
> Control modifier 'C-' is added to the menu-item symbol tab-2
> emitted as an event.

Are you talking about handle_tab_bar_click and the processing of
TAB_BAR_EVENT in make_lispy_event?  Or are there other/additional
parts to this processing?

IOW, where are the symbols like tab-2 produced?

> > And what prevents us from emitting something like tab-close-2 when
> > mouse-2 is clicked?
> 
> Then mouse-2 is still hard-coded and tab-close-2 is not much different
> from the previous patch that emits C-tab-2.
> 
> Or in "tab-close-2" what does "2" mean: the button number 2 (mouse-2),
> or the tab number 2 (tab-2)?
> 
> Should they then cover all combinations?  tab-1-mouse-1,
> tab-1-mouse-2, tab-2-mouse-1, tab-2-mouse-2, ...

I don't know, I don't think I have a clear idea of how these symbols
are produced yet, and you didn't tell enough for me to get such a
clear idea.  Please tell more details, so that this discussion could
be more efficient.

> >> It should be possible to implement normal key bindings mouse-1/mouse-2,
> >> but such change will not be backward-compatible.
> >
> > In what way will it be incompatible?
> 
> Currently tab-bar-make-keymap returns a keymap with menu-items.
> This is like menu-bar is implemented.  The menu-bar displays
> menu-items, and clicking on them emits events with their symbols.
> The tool-bar is implemented the same way: it displays
> menu-items, and clicking emits their symbols.
> The tab-bar is exactly the same: displays menu-items
> on the tab-bar, and clicking mouse-1 emits events
> with tab names, e.g. tab-2.
> 
> Users already are using such add-advice that expect
> tab-bar-make-keymap returning a keymap with menu-items.

If we find a way to produce a different symbol when mouse-2 is clicked
on a tab, there will be no incompatibility, right?