From bc2fb4fdad8cc54a7fe47bd76580959697219846 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 18 Jun 2014 18:02:15 -0400 Subject: [PATCH] * lisp/xt-mouse.el (xterm-mouse-translate-1): Fix last change. (xterm-mouse--read-event-sequence-1000): Drop unknown events instead of burping. Fixes: debbugs:17776 --- lisp/ChangeLog | 6 ++++++ lisp/xt-mouse.el | 39 +++++++++++++++++++-------------------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 03cf468a31..d7ca5f0dd8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-06-18 Stefan Monnier + + * xt-mouse.el (xterm-mouse-translate-1): Fix last change (bug#17776). + (xterm-mouse--read-event-sequence-1000): Drop unknown events instead of + burping. + 2014-06-18 Eli Zaretskii * term/w32-win.el (dynamic-library-alist): Support giflib 5.1.0 diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 5b34612c2e..59ed68a60c 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -76,7 +76,7 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)." (is-down (string-match "down" (symbol-name (car down))))) ;; Retrieve the expected preface for the up-event. - (unless is-down + (when is-down (unless (cond ((null extension) (and (eq (read-event) ?\e) (eq (read-event) ?\[) @@ -158,28 +158,27 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)." (defun xterm-mouse--read-event-sequence-1000 () (let* ((code (- (read-event) 32)) (type - (intern - ;; For buttons > 3, the release-event looks differently - ;; (see xc/programs/xterm/button.c, function EditorButton), - ;; and come in a release-event only, no down-event. - (cond ((>= code 64) - (format "mouse-%d" (- code 60))) - ((memq code '(8 9 10)) - (setq xterm-mouse-last (- code 8)) - (format "M-down-mouse-%d" (- code 7))) - ((and (= code 11) xterm-mouse-last) - (format "M-mouse-%d" (1+ xterm-mouse-last))) - ((and (= code 3) xterm-mouse-last) - ;; For buttons > 5 xterm only reports a button-release event. - ;; Drop them since they're not usable and can be spurious. - (format "mouse-%d" (1+ xterm-mouse-last))) - ((memq code '(0 1 2)) - (setq xterm-mouse-last code) - (format "down-mouse-%d" (+ 1 code)))))) + ;; For buttons > 3, the release-event looks differently + ;; (see xc/programs/xterm/button.c, function EditorButton), + ;; and come in a release-event only, no down-event. + (cond ((>= code 64) + (format "mouse-%d" (- code 60))) + ((memq code '(8 9 10)) + (setq xterm-mouse-last (- code 8)) + (format "M-down-mouse-%d" (- code 7))) + ((and (= code 11) xterm-mouse-last) + (format "M-mouse-%d" (1+ xterm-mouse-last))) + ((and (= code 3) xterm-mouse-last) + ;; For buttons > 5 xterm only reports a button-release event. + ;; Drop them since they're not usable and can be spurious. + (format "mouse-%d" (1+ xterm-mouse-last))) + ((memq code '(0 1 2)) + (setq xterm-mouse-last code) + (format "down-mouse-%d" (+ 1 code))))) (x (- (read-event) 33)) (y (- (read-event) 33))) (and type (wholenump x) (wholenump y) - (list type x y)))) + (list (intern type) x y)))) ;; XTerm's 1006-mode terminal mouse click reporting has the form ;;