]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle tab-bar clicks on a GPM-capable console.
authorJuri Linkov <juri@linkov.net>
Sun, 12 Jan 2020 23:23:12 +0000 (01:23 +0200)
committerJuri Linkov <juri@linkov.net>
Sun, 12 Jan 2020 23:23:12 +0000 (01:23 +0200)
* 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.

lisp/tab-line.el
src/term.c
src/xdisp.c

index 8e561c71f5bf775fc590d7e70343362fb875fc1b..ef530d43dec21c337f372524fdd21590f1d9fd6f 100644 (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)
index 871734318c02afc50ac1c0e906e446989e66db4e..a3aef31ec25d1c12b5c20151e87f9c6d71ca5bc9 100644 (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:
index f3a297a70203f109634e36224abf9a32b29e7c90..5b21aaa85a9ffb07ab8883dfc01e3094bcfeb56b 100644 (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,