Repository navigation
fix: preserve held modifiers during clipboard paste - #33
Merged
Merged
Conversation
|
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.