Hopefully fixed bug where keys like super weren't being forwarded with bypass mode.

This commit is contained in:
Storm Dragon
2026-05-14 21:45:30 -04:00
parent a8e4d7bb2a
commit 096919a2da
2 changed files with 71 additions and 2 deletions
@@ -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