Skip to content

fix: send Korean IME toggle keys as stateless pulses - #34

Merged
LukeGus merged 1 commit into
Termix-SSH:dev-1.4.0from
ZacharyZcR:fix/ime-toggle-pulses-22
Nov 7, 2026
Merged

LukeGus merged 1 commit into
Termix-SSH:dev-1.4.0from
ZacharyZcR:fix/ime-toggle-pulses-22

Conversation

@ZacharyZcR

Copy link
Copy Markdown
Member

Korean keyboard drivers that omit Hangul/Hanja keyup events leave Guacamole's pressed-key table latched after the first tap. Later taps never reach the remote session.

Handle these toggle keys in DOM capture as one down/up pulse per non-repeated keydown, through the existing focus guard. Keep them out of Guacamole's held-key and software-repeat state; suppress repeated and delayed release events without changing ordinary key handling.

Related to #22.

Validation: real Guacamole.Keyboard and production focus-handler regressions fail before the fix and pass afterward, covering repeated physical taps without keyup, held keys, DOM repeats, delayed keyup/keypress, and hidden displays. Full suite: 442 passed, 1 skipped. Clean npm ci, typecheck, build, manifest validation, formatting and pack passed. Physical Korean keyboard and remote Windows VM acceptance remain unverified.

@termix-triage-bot

Copy link
Copy Markdown

AI review | Looks safe to merge

Intercepts Korean IME toggle keys to send immediate down/up pulses, bypassing Guacamole's internal state tracking to prevent latching on drivers that omit keyup events. The change removes complex repeat-filtering logic and replaces it with direct event interception, with updated tests covering the new behavior. No security, stability, or rule violations found. Ready to merge.

Reviewed 0eff5f4. AI can be wrong, a maintainer still decides. Comment /termix review to run it again.

@LukeGus
LukeGus merged commit ba8bec8 into Termix-SSH:dev-1.4.0 Nov 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants