summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2014-06-18 18:02:15 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2014-06-18 18:02:15 -0400
commitbc2fb4fdad8cc54a7fe47bd76580959697219846 (patch)
treee588267229a4dd7c44ab9182c548ac842043da4d
parente776a63014abedb2893e89f0abcc87922fe5dcf8 (diff)
downloademacs-bc2fb4fdad8cc54a7fe47bd76580959697219846.tar.gz
* 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
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/xt-mouse.el39
2 files changed, 25 insertions, 20 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 03cf468a315..d7ca5f0dd88 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * 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 <eliz@gnu.org>
* 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 5b34612c2e7..59ed68a60c7 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
;; <BUTTON> ; <X> ; <Y> <M or m>, where the button and ordinates are