Hopefully fixed bug where keys like super weren't being forwarded with bypass mode.
This commit is contained in:
@@ -368,6 +368,7 @@ class driver(inputDriver):
|
||||
"event_state": 1 if event.type == X.KeyPress else 0,
|
||||
"event_type": event.type,
|
||||
"event_raw_state": getattr(event, "state", 0),
|
||||
"event_x_time": getattr(event, "time", X.CurrentTime),
|
||||
}
|
||||
|
||||
def refresh_modifier_state(self):
|
||||
@@ -650,8 +651,28 @@ class driver(inputDriver):
|
||||
self.clear_event_buffer()
|
||||
|
||||
def write_event_buffer(self):
|
||||
if self.display:
|
||||
for event in self.env["input"]["event_buffer"]:
|
||||
self.replay_key_event(event)
|
||||
self.clear_event_buffer()
|
||||
|
||||
def replay_key_event(self, event):
|
||||
if not isinstance(event, dict):
|
||||
return
|
||||
if event.get("event_type") != X.KeyPress:
|
||||
return
|
||||
try:
|
||||
self.display.allow_events(
|
||||
X.ReplayKeyboard,
|
||||
event.get("event_x_time", X.CurrentTime),
|
||||
)
|
||||
self.display.flush()
|
||||
except Exception as e:
|
||||
self.write_debug(
|
||||
"x11Driver replay key event failed: " + str(e),
|
||||
debug.DebugLevel.ERROR,
|
||||
)
|
||||
|
||||
def clear_event_buffer(self):
|
||||
if not self._initialized:
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user