@@ -543,8 +543,10 @@ def _run(self):
543
543
keys_pressed_with_modifier : set [int ] = set ()
544
544
down_modifier_keys : set [int ] = set ()
545
545
546
- def _parse_key_event (event : InputEvent ) -> tuple [str | None , bool ]:
546
+ def _process_key_event (event : InputEvent ) -> tuple [str | None , bool ]:
547
547
"""
548
+ Processes an InputEvent to determine which key Plover should receive.
549
+ Considers pressed modifiers and Plover's suppressed keys.
548
550
Returns a tuple of (key_to_send_to_plover, suppress)
549
551
"""
550
552
if not self ._suppressed_keys :
@@ -587,11 +589,13 @@ def _parse_key_event(event: InputEvent) -> tuple[str | None, bool]:
587
589
device : InputDevice = key .fileobj
588
590
for event in device .read ():
589
591
if event .type == e .EV_KEY :
590
- key_to_send_to_plover , suppress = _parse_key_event (event )
592
+ key_to_send_to_plover , suppress = _process_key_event (event )
591
593
if key_to_send_to_plover is not None :
592
- # Always send keys to Plover when no keys suppressed
594
+ # Always send keys to Plover when no keys suppressed.
593
595
# This is required for global shortcuts like
594
- # Plover enable/disable (PHRO*L)
596
+ # Plover toggle (PHROLG) when Plover is disabled.
597
+ # Also, must explicitly check key_up or key_down
598
+ # because there is a third case: key_hold
595
599
if event .value == KeyEvent .key_down :
596
600
self .key_down (key_to_send_to_plover )
597
601
elif event .value == KeyEvent .key_up :
0 commit comments