mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 04:04:09 +02:00
Relay: share a key combination's Meta release with frame-voice
A Meta+key combination (Meta+J for gaze_left, say) hides Meta's release from the desktop, and the relay skipped share_key for it too. frame-voice saw Meta go down on @frametop_keys and never come up, so it held all dictated text back, waiting for that release. Keys of grabbed keyboards are now shared as pressed, before key_binding() decides what the desktop gets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8b854fd424
commit
675ef3f0d5
1 file changed
+10
-6
+10
-6
@@ -1147,6 +1147,16 @@ def main():
|
||||
if node.role != "pointer":
|
||||
# Observed only, unless typing goes to the desktop. With META_DASHBOARD=1,
|
||||
# a Meta tap on any keyboard toggles the dashboard.
|
||||
if (node.role == "passthrough" and etype == EV_KEY and node.grabbed
|
||||
and code < BTN_MISC and value in (0, 1)):
|
||||
# Shared as pressed, key combinations included: the Meta release a
|
||||
# combination keeps from the desktop must still reach frame-voice, or
|
||||
# it waits for that release before typing anything.
|
||||
share_key(node, code, value)
|
||||
if value:
|
||||
node.held.add(code)
|
||||
else:
|
||||
node.held.discard(code)
|
||||
if node.role == "passthrough" and etype == EV_KEY and code < BTN_MISC and key_binding(code, value, now):
|
||||
continue
|
||||
if node.role == "passthrough" and etype == EV_KEY:
|
||||
@@ -1154,12 +1164,6 @@ def main():
|
||||
last_typing = now
|
||||
screens_sock.sendto(b"typing", HELPER)
|
||||
to_screens(code, value)
|
||||
if node.grabbed and code < BTN_MISC and value in (0, 1):
|
||||
share_key(node, code, value)
|
||||
if value:
|
||||
node.held.add(code)
|
||||
else:
|
||||
node.held.discard(code)
|
||||
if (pointer and state["meta_dashboard"] and node.role == "passthrough"
|
||||
and etype == EV_KEY):
|
||||
if code in (KEY_LEFTMETA, KEY_RIGHTMETA):
|
||||
|
||||
Reference in new issue
Block a user