[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/xelb a8540a5: Handle MappingNotfiy event
From: |
Chris Feng |
Subject: |
[elpa] externals/xelb a8540a5: Handle MappingNotfiy event |
Date: |
Sun, 07 Feb 2016 11:45:32 +0000 |
branch: externals/xelb
commit a8540a5a0891c2ade769f80c05c4c2b08279e71f
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Handle MappingNotfiy event
* xcb-keysyms.el (xcb:keysyms:init): Update keyboard/modifier mapping on
MappingNotfiy event.
---
xcb-keysyms.el | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/xcb-keysyms.el b/xcb-keysyms.el
index f525c6f..ad4e145 100644
--- a/xcb-keysyms.el
+++ b/xcb-keysyms.el
@@ -63,7 +63,24 @@ This method must be called before using any other method in
this module."
min-keycode
(1+ (- max-keycode min-keycode)))
(unless xcb:keysyms:meta-mask ;avoid duplicated initialization
- (xcb:keysyms:update-modifier-mapping obj))))
+ (xcb:keysyms:update-modifier-mapping obj)
+ ;; Update on MappingNotify event.
+ (xcb:+event obj 'xcb:MappingNotify
+ `(lambda (data _)
+ (let ((obj1 (make-instance 'xcb:MappingNotify)))
+ (xcb:unmarshal obj1 data)
+ (with-slots (request first-keycode count) obj1
+ (cond
+ ((= request xcb:Mapping:Modifier)
+ ;; Modifier keys changed
+ (xcb:-log "Update modifier mapping")
+ (xcb:keysyms:update-modifier-mapping ,obj))
+ ((= request xcb:Mapping:Keyboard)
+ ;; Update changed keys
+ (xcb:-log "Update keyboard mapping: %s - %s"
+ first-keycode (+ first-keycode count -1))
+ (xcb:keysyms:update-keyboard-mapping
+ ,obj first-keycode count))))))))))
(cl-defmethod xcb:keysyms:update-keyboard-mapping ((obj xcb:connection)
first-keycode count)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/xelb a8540a5: Handle MappingNotfiy event,
Chris Feng <=