Skip to content

fix: preserve held modifiers during clipboard paste - #33

Merged
LukeGus merged 1 commit into
Termix-SSH:dev-1.4.0from
ZacharyZcR:fix/clipboard-paste-29
Nov 7, 2026
Merged

LukeGus merged 1 commit into
Termix-SSH:dev-1.4.0from
ZacharyZcR:fix/clipboard-paste-29

Conversation

@ZacharyZcR

Copy link
Copy Markdown
Member

Synthetic clipboard paste always releases Ctrl/Command, even when that modifier is still physically held. Keep the held left/right modifier state and only release modifiers introduced by the synthetic shortcut. Both paste entry points pass the live Guacamole keyboard state; failed key sends clean up only the temporary modifier.

Related: #29. This fixes the modifier-state defect described in that report, not the first-paste/stale-clipboard race. A normal Guacamole stream ACK does not establish remote clipboard acceptance, so no arbitrary delay, duplicate paste or misleading ACK wait is added.

Validation: seven new helper regressions fail on the original code. Component tests cover direct-paste integration and stale events after disconnect. Fresh npm ci, 453 passed / 1 skipped, typecheck, build, validation, pack and formatting pass. Validation retains the existing undeclared KUBERNETES_SERVICE_HOST warning. No native Windows/macOS acceptance is claimed.

@termix-triage-bot

Copy link
Copy Markdown

AI review | Looks safe to merge

Updates the clipboard paste logic to check the live Guacamole keyboard state before sending synthetic modifier key events, preventing the remote session from releasing physically held Ctrl or Command keys. Adds corresponding type definitions and unit tests. No security or stability issues found.

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

@LukeGus
LukeGus merged commit 4280ec8 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