diff --git a/src/rdp_display_widget.cpp b/src/rdp_display_widget.cpp index 85349f2..6e712f9 100644 --- a/src/rdp_display_widget.cpp +++ b/src/rdp_display_widget.cpp @@ -147,10 +147,16 @@ void RdpDisplayWidget::resizeEvent(QResizeEvent* event) void RdpDisplayWidget::keyPressEvent(QKeyEvent* event) { - if (event == nullptr || event->isAutoRepeat()) { + if (event == nullptr) { return; } + // Auto-repeat presses must reach the remote server so it can perform + // its own typematic repeat, exactly as a physical keyboard held down + // would. Only release events filter out isAutoRepeat() (below), since + // Qt uses a synthetic release/press pair purely to normalize platform + // auto-repeat quirks -- forwarding that synthetic release would send a + // spurious key-up for a key that is still physically held. emit keyInput(event->key(), event->nativeScanCode(), event->text(),