mirror of
https://github.com/emacs-exwm/exwm.git
synced 2024-11-23 21:17:59 +01:00
Fix a `unread-command-events' issue for Emacs 24
* exwm-input.el (exwm-input--unread-event) (exwm-input--on-KeyPress-line-mode): Use `unread-command-events' differently on Emacs 24 and 25.
This commit is contained in:
parent
39dc328157
commit
0b8a373e4f
1 changed files with 14 additions and 2 deletions
|
@ -287,6 +287,19 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.")
|
||||||
(global-set-key key command)
|
(global-set-key key command)
|
||||||
(cl-pushnew key exwm-input--global-keys))
|
(cl-pushnew key exwm-input--global-keys))
|
||||||
|
|
||||||
|
;; FIXME: Putting (t . EVENT) into `unread-command-events' does not really work
|
||||||
|
;; as documented in Emacs 24. Since inserting a conventional EVENT does
|
||||||
|
;; add it into (this-command-keys) there, we use `unread-command-events'
|
||||||
|
;; differently on Emacs 24 and 25.
|
||||||
|
(eval-and-compile
|
||||||
|
(if (< emacs-major-version 25)
|
||||||
|
(defsubst exwm-input--unread-event (event)
|
||||||
|
(setq unread-command-events
|
||||||
|
(append unread-command-events (list event))))
|
||||||
|
(defsubst exwm-input--unread-event (event)
|
||||||
|
(setq unread-command-events
|
||||||
|
(append unread-command-events `((t . ,event)))))))
|
||||||
|
|
||||||
(defvar exwm-input-command-whitelist nil
|
(defvar exwm-input-command-whitelist nil
|
||||||
"A list of commands that when active all keys should be forwarded to Emacs.")
|
"A list of commands that when active all keys should be forwarded to Emacs.")
|
||||||
(make-obsolete-variable 'exwm-input-command-whitelist
|
(make-obsolete-variable 'exwm-input-command-whitelist
|
||||||
|
@ -313,8 +326,7 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.")
|
||||||
(unless minibuffer-window (setq exwm-input--during-key-sequence t))
|
(unless minibuffer-window (setq exwm-input--during-key-sequence t))
|
||||||
;; Feed this event to command loop. Also force it to be added to
|
;; Feed this event to command loop. Also force it to be added to
|
||||||
;; `this-command-keys'.
|
;; `this-command-keys'.
|
||||||
(setq unread-command-events
|
(exwm-input--unread-event event))
|
||||||
(append unread-command-events `((t . ,event)))))
|
|
||||||
(xcb:+request exwm--connection
|
(xcb:+request exwm--connection
|
||||||
(make-instance 'xcb:AllowEvents
|
(make-instance 'xcb:AllowEvents
|
||||||
:mode (or mode xcb:Allow:ReplayKeyboard)
|
:mode (or mode xcb:Allow:ReplayKeyboard)
|
||||||
|
|
Loading…
Reference in a new issue