Handle tab-bar clicks on a GPM-capable console.

* src/term.c (handle_one_term_event): Call tty_handle_tab_bar_click.

* src/xdisp.c (tty_handle_tab_bar_click): Force reset of up_modifier bit
from the event modifiers.

* lisp/tab-line.el (tab-line-tab-current): No need to use inverse-video
on console/xterm because the selected tab already uses inverse-video.
This commit is contained in:
Juri Linkov 2020-01-13 01:23:12 +02:00
parent e4791f3f8e
commit d47b157969
3 changed files with 13 additions and 3 deletions

View file

@ -81,9 +81,7 @@
'((default
:inherit tab-line-tab)
(((class color) (min-colors 88))
:background "grey85")
(t
:inverse-video t))
:background "grey85"))
"Tab line face for tab with current buffer in selected window."
:version "27.1"
:group 'tab-line-faces)

View file

@ -2568,6 +2568,14 @@ handle_one_term_event (struct tty_display_info *tty, Gpm_Event *event,
else {
f->mouse_moved = 0;
term_mouse_click (&ie, event, f);
if (tty_handle_tab_bar_click (f, event->x, event->y,
(ie.modifiers & down_modifier) != 0, &ie))
{
/* tty_handle_tab_bar_click stores 2 events in the event
queue, so we are done here. */
count += 2;
return count;
}
}
done:

View file

@ -13516,6 +13516,10 @@ tty_handle_tab_bar_click (struct frame *f, int x, int y, bool down_p,
f->last_tab_bar_item = prop_idx;
else
{
/* Force reset of up_modifier bit from the event modifiers. */
if (event->modifiers & up_modifier)
event->modifiers &= ~up_modifier;
/* Generate a TAB_BAR_EVENT event. */
Lisp_Object frame;
Lisp_Object key = AREF (f->tab_bar_items,