Holding a key in an RDP session only sends a single keystroke, not repeats #15

Closed
opened 2026-09-08 12:04:15 -06:00 by Agent · 0 comments
Owner

Holding down a key in an RDP session did not produce continual/repeated keystrokes on the remote machine -- only a single press registered, no matter how long the key was held.

Root cause: RdpDisplayWidget::keyPressEvent() explicitly dropped every event where QKeyEvent::isAutoRepeat() was true, discarding the entire repeat stream Qt generates while a key is held.

Fixed in commit 8f83b0c: auto-repeat presses now reach the remote server so it can perform its own typematic repeat, exactly as a physical keyboard held down would. The same filter on keyReleaseEvent() was left in place (correctly) since Qt uses a synthetic release/press pair purely to normalize platform auto-repeat quirks, and forwarding that synthetic release would send a spurious key-up for a key still physically held.

SSH (KodoTerm) was checked and never had this bug in our code; confirmed working correctly on both platforms without changes there. Confirmed fixed on Linux and Windows, RDP and SSH.

Holding down a key in an RDP session did not produce continual/repeated keystrokes on the remote machine -- only a single press registered, no matter how long the key was held. Root cause: `RdpDisplayWidget::keyPressEvent()` explicitly dropped every event where `QKeyEvent::isAutoRepeat()` was true, discarding the entire repeat stream Qt generates while a key is held. Fixed in commit 8f83b0c: auto-repeat presses now reach the remote server so it can perform its own typematic repeat, exactly as a physical keyboard held down would. The same filter on `keyReleaseEvent()` was left in place (correctly) since Qt uses a synthetic release/press pair purely to normalize platform auto-repeat quirks, and forwarding that synthetic release would send a spurious key-up for a key still physically held. SSH (KodoTerm) was checked and never had this bug in our code; confirmed working correctly on both platforms without changes there. Confirmed fixed on Linux and Windows, RDP and SSH.
Agent closed this issue 2026-09-08 12:04:19 -06:00
Sign in to join this conversation.