Fix dragging mode line on text terminals with a mouse (bug#67457)

* 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.
This commit is contained in:
Jared Finder 2023-12-09 10:17:05 +02:00 committed by Eli Zaretskii
parent 12daf386f3
commit 46fe7a17f5
2 changed files with 12 additions and 4 deletions

View file

@ -13,9 +13,13 @@
;; Compositions confuse cursor movement. ;; Compositions confuse cursor movement.
(setq-default auto-composition-mode "linux") (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. ;; Don't translate ESC TAB to backtab as directed by ncurses-6.3.
(define-key input-decode-map "\e\t" nil) (define-key input-decode-map "\e\t" nil)
;; Make Latin-1 input characters work, too. ;; Make Latin-1 input characters work, too.
;; Meta will continue to work, because the kernel turns that into Escape. ;; Meta will continue to work, because the kernel turns that into Escape.

View file

@ -63,9 +63,13 @@ https://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
(is-move (eq 'mouse-movement ev-command)) (is-move (eq 'mouse-movement ev-command))
(is-down (string-match "down-" (symbol-name ev-command)))) (is-down (string-match "down-" (symbol-name ev-command))))
;; Mouse events symbols must have an 'event-kind property with ;; Mouse events symbols must have an 'event-kind property set.
;; the value 'mouse-click. ;; Most of them use the value 'mouse-click, but 'mouse-movement has
(when ev-command (put ev-command 'event-kind 'mouse-click)) ;; 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 (cond
((null event) nil) ;Unknown/bogus byte sequence! ((null event) nil) ;Unknown/bogus byte sequence!