]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix dragging mode line on text terminals with a mouse (bug#67457)
authorJared Finder <jared@finder.org>
Sat, 9 Dec 2023 08:17:05 +0000 (10:17 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 9 Dec 2023 08:17:05 +0000 (10:17 +0200)
* lisp/xt-mouse.el (xterm-mouse-translate-1): Fix the 'event-kind'
property of mouse-movement symbols emitted by xt-mouse.
* lisp/term/linux.el (terminal-init-linux): Call 'gpm-mouse-mode'
to set up the terminal for the mouse, if needed.

lisp/term/linux.el
lisp/xt-mouse.el

index f24af3f1344867ff80d27637ff9551b2d1ebe221..491649a053d1ac8c19e4d13d5de3c0d6cf0747d6 100644 (file)
   ;; Compositions confuse cursor movement.
   (setq-default auto-composition-mode "linux")
 
+  ;; Ensure additional terminal setup is done when `gpm-mouse-mode' is
+  ;; enabled.
+  (ignore-errors (when gpm-mouse-mode (gpm-mouse-mode 1)))
+
   ;; Don't translate ESC TAB to backtab as directed by ncurses-6.3.
   (define-key input-decode-map "\e\t" nil)
-  
+
   ;; Make Latin-1 input characters work, too.
   ;; Meta will continue to work, because the kernel turns that into Escape.
 
index 4ccd35d52775b8d43060df2eaddfab1afd631723..2e927c0e32e366b2620cc8cdac1dea3f30360a3f 100644 (file)
@@ -63,9 +63,13 @@ https://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
           (is-move (eq 'mouse-movement ev-command))
           (is-down (string-match "down-" (symbol-name ev-command))))
 
-      ;; Mouse events symbols must have an 'event-kind property with
-      ;; the value 'mouse-click.
-      (when ev-command (put ev-command 'event-kind 'mouse-click))
+      ;; Mouse events symbols must have an 'event-kind property set.
+      ;; Most of them use the value 'mouse-click, but 'mouse-movement has
+      ;; a different value.  See head_table in keyboard.c. (bug#67457)
+      (when ev-command (put ev-command 'event-kind
+                            (if (eq ev-command 'mouse-movement)
+                                'mouse-movement
+                              'mouse-click)))
 
       (cond
        ((null event) nil)              ;Unknown/bogus byte sequence!