[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 13d468f: Guard terminal parameter in XTerm mouse mo
From: |
Philipp Stephani |
Subject: |
[Emacs-diffs] master 13d468f: Guard terminal parameter in XTerm mouse mode |
Date: |
Mon, 28 Nov 2016 18:45:32 +0000 (UTC) |
branch: master
commit 13d468fc0793e23a2f7cd4338b4f5e42e16a96ee
Author: Philipp Stephani <address@hidden>
Commit: Philipp Stephani <address@hidden>
Guard terminal parameter in XTerm mouse mode
It has been observed (in the HTerm terminal emulator) that the
event stored in the 'xterm-mouse-last-down' terminal parameter gets
overwritten during a mouse drag operation, causing Emacs to attempt to
synthesize the non-existing <drag-mouse-0> event. Copy the event into
the terminal parameter to protect against such modifications.
* lisp/xt-mouse.el (xterm-mouse-translate-1): Guard against modification
of input event list.
---
lisp/xt-mouse.el | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index 5fb977d..d2d0cf5 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -70,7 +70,11 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
(cond
((null event) nil) ;Unknown/bogus byte sequence!
(is-down
- (setf (terminal-parameter nil 'xterm-mouse-last-down) event)
+ (setf (terminal-parameter nil 'xterm-mouse-last-down)
+ ;; EVENT might be handed back to the input queue, which
+ ;; might modify it. Copy it into the terminal parameter
+ ;; to guard against that.
+ (copy-sequence event))
vec)
(is-move vec)
(t
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 13d468f: Guard terminal parameter in XTerm mouse mode,
Philipp Stephani <=