emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 d4e1549: Guard terminal parameter in XTerm mouse


From: Philipp Stephani
Subject: [Emacs-diffs] emacs-25 d4e1549: Guard terminal parameter in XTerm mouse mode
Date: Tue, 22 Nov 2016 20:42:22 +0000 (UTC)

branch: emacs-25
commit d4e15492f7c55eabdadc6f3735b84972748e6c0d
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 a2b6401..15fc6de 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]