emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/exwm 9c8e95b 1/2: Fix a bug of simulation keys


From: Chris Feng
Subject: [elpa] externals/exwm 9c8e95b 1/2: Fix a bug of simulation keys
Date: Tue, 12 Jul 2016 04:16:32 +0000 (UTC)

branch: externals/exwm
commit 9c8e95b376124ca192e65a3dca33dd40ca6ecee3
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix a bug of simulation keys
    
    * exwm-input.el (exwm-input--on-KeyPress-line-mode)
    (exwm-input--on-KeyPress-char-mode): Force events to be added to
    `this-command-keys'.
    (exwm-input-send-next-key): The read event can now be (t . EVENT).
---
 exwm-input.el |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/exwm-input.el b/exwm-input.el
index e786f0d..2622253 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -294,7 +294,9 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
                      (memq event exwm-input--simulation-prefix-keys)))
         (setq mode xcb:Allow:AsyncKeyboard)
         (unless minibuffer-window (setq exwm-input--during-key-sequence t))
-        (push event unread-command-events))
+        ;; Feed this event to command loop.  Also force it to be added to
+        ;; `this-command-keys'.
+        (push (cons t event) unread-command-events))
       (xcb:+request exwm--connection
           (make-instance 'xcb:AllowEvents
                          :mode (or mode xcb:Allow:ReplayKeyboard)
@@ -317,7 +319,9 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
           (setq exwm-input--temp-line-mode t
                 exwm-input--during-key-sequence t)
           (exwm-input--grab-keyboard))  ;grab keyboard temporarily
-        (push event unread-command-events))))
+        ;; Feed this event to command loop.  Also force it to be added to
+        ;; `this-command-keys'.
+        (push (cons t event) unread-command-events))))
   (xcb:+request exwm--connection
       (make-instance 'xcb:AllowEvents
                      :mode xcb:Allow:AsyncKeyboard
@@ -443,6 +447,8 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
           (setq key (read-key (format "Send key: %s (%d/%d)"
                                       (key-description keys)
                                       (1+ i) times)))
+          (when (and (listp key) (eq (car key) t))
+            (setq key (cdr key)))
           (unless (listp key) (throw 'break nil))))
       (setq exwm-input--during-key-sequence nil)
       (setq keys (vconcat keys (vector key)))



reply via email to

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