about summary refs log tree commit diff
path: root/.elpaignore
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-06-18T14·20+0800
committerChris Feng <chris.w.feng@gmail.com>2018-06-18T14·33+0800
commit0680be104f9394e39dd55b5c4e33b9b7e4e77926 (patch)
tree5466c63beeb948b537487e1d116cc4c81619af98 /.elpaignore
parentb75c89cae2a1c4c70044f885c44a95fd2f9950dd (diff)
Grab & Replay key events with XI2 and XTEST
; A change has been made in Xorg server 1.20 that replaying a key
; event with keyboard grabbed would generate extra focus change and
; enter/leave events.  This basically breaks line-mode for apps like
; Firefox.  This commit reimplements the grab & replay functionality
; with XI2 and XTEST.

* exwm-input.el (exwm-input--devices): New variable for caching slave
keyboards.
(exwm-input--update-devices): Update it and re-grab keys if necessary.
(exwm-input--on-Hierarchy): Event listener for the Hierarchy event
that would in turn call `exwm-input--update-devices' to update the
cache.

* exwm-input.el (exwm-input--on-KeyPress): Use XI2 KeyPress events.
(exwm-input--on-KeyRelease): Event listener for the KeyRelease events.
(exwm-input--grab-global-prefix-keys): Use XI2 and also select
KeyRelease events.
(exwm-input--on-KeyPress-line-mode): Use XI2 KeyPress events and
replay key events with XTEST.
(exwm-input--on-KeyPress-char-mode, exwm-input--grab-keyboard)
(exwm-input--release-keyboard): Use XI2 KeyPress events.

* exwm-input.el (exwm-input--init): Initialize the XI2 and XTEST
extensions; add listeners for XI2 KeyPress, KeyRelease and Hierarchy
events.
Diffstat (limited to '.elpaignore')
0 files changed, 0 insertions, 0 deletions