[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)))