[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/xelb aac6a74: Temporarily disable update on every NewKe
From: |
Chris Feng |
Subject: |
[elpa] externals/xelb aac6a74: Temporarily disable update on every NewKeyboardNotify event |
Date: |
Sun, 8 Apr 2018 11:56:46 -0400 (EDT) |
branch: externals/xelb
commit aac6a74e2f8a7b579eec3f526a874dfa38bde4c3
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Temporarily disable update on every NewKeyboardNotify event
* xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): Only handle the
first NewKeyboardNotify event (as a result of selecting that event).
XELB is currently not efficient enough to handle every such event.
---
xcb-keysyms.el | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/xcb-keysyms.el b/xcb-keysyms.el
index 725d80d..881946e 100644
--- a/xcb-keysyms.el
+++ b/xcb-keysyms.el
@@ -48,7 +48,8 @@
((keytypes :initform nil)
(keycodes :initform nil)
(min-keycode :initform 0)
- (max-keycode :initform 0))
+ (max-keycode :initform 0)
+ (updated :initform nil))
:documentation "Device (keyboard) properties.")
;; These variables are shared by all connections.
@@ -153,16 +154,19 @@ This method must be called before using any other method
in this module."
(opcode (xcb:-get-extra-plist obj 'keysyms 'opcode))
(callback (xcb:-get-extra-plist obj 'keysyms 'callback))
(obj1 (make-instance 'xcb:xkb:NewKeyboardNotify))
- updated)
+ device updated)
(xcb:unmarshal obj1 data)
(with-slots (deviceID oldDeviceID requestMajor requestMinor changed) obj1
(if (= 0 (logand changed xcb:xkb:NKNDetail:DeviceID))
(when (/= 0 (logand changed xcb:xkb:NKNDetail:Keycodes))
- ;; (xcb:keysyms:-update-keytypes obj deviceID)
- (xcb:keysyms:-update-keycodes obj deviceID)
- (when (= deviceID device-id)
- (setq updated t)
- (xcb:keysyms:-update-modkeys obj deviceID)))
+ (setq device (xcb:-get-extra-plist obj 'keysyms deviceID))
+ (when (and device
+ (not (slot-value device 'updated)))
+ (xcb:keysyms:-update-keycodes obj deviceID)
+ (when (= deviceID device-id)
+ (setq updated t)
+ (xcb:keysyms:-update-modkeys obj deviceID))
+ (setf (slot-value device 'updated) t)))
(xcb:keysyms:-set-per-client-flags obj deviceID)
(xcb:keysyms:-update-keytypes obj deviceID)
(xcb:keysyms:-update-keycodes obj deviceID)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/xelb aac6a74: Temporarily disable update on every NewKeyboardNotify event,
Chris Feng <=