From f90db81742d071816d7e033f1e3c23de51916df6 Mon Sep 17 00:00:00 2001 From: zeljan1 Date: Wed, 26 Feb 2025 12:26:24 +0100 Subject: [PATCH] Qt,Qt5,Qt6: do not send KeyUp if key is autorepeated. issue #41472 --- lcl/interfaces/qt/qtwidgets.pas | 6 ++++++ lcl/interfaces/qt5/qtwidgets.pas | 6 ++++++ lcl/interfaces/qt6/qtwidgets.pas | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 76a036d5a0..eeb5e54d9d 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -3112,6 +3112,12 @@ begin if not CanSendLCLMessage then exit; + if (QEvent_type(Event) = QEventKeyRelease) and QKeyEvent_isAutoRepeat(QKeyEventH(Event)) then + begin + QEvent_ignore(Event); + exit(False); + end; + FillChar(KeyMsg{%H-}, SizeOf(KeyMsg), #0); FillChar(CharMsg{%H-}, SizeOf(CharMsg), #0); UTF8Text := ''; diff --git a/lcl/interfaces/qt5/qtwidgets.pas b/lcl/interfaces/qt5/qtwidgets.pas index 733faa8f64..3818c01d3b 100644 --- a/lcl/interfaces/qt5/qtwidgets.pas +++ b/lcl/interfaces/qt5/qtwidgets.pas @@ -3240,6 +3240,12 @@ begin if not CanSendLCLMessage then exit; + if (QEvent_type(Event) = QEventKeyRelease) and QKeyEvent_isAutoRepeat(QKeyEventH(Event)) then + begin + QEvent_ignore(Event); + exit(False); + end; + FillChar(KeyMsg{%H-}, SizeOf(KeyMsg), #0); FillChar(CharMsg{%H-}, SizeOf(CharMsg), #0); UTF8Text := ''; diff --git a/lcl/interfaces/qt6/qtwidgets.pas b/lcl/interfaces/qt6/qtwidgets.pas index bbba4a61e3..db2cb1ad00 100644 --- a/lcl/interfaces/qt6/qtwidgets.pas +++ b/lcl/interfaces/qt6/qtwidgets.pas @@ -3237,6 +3237,12 @@ begin if not CanSendLCLMessage then exit; + if (QEvent_type(Event) = QEventKeyRelease) and QKeyEvent_isAutoRepeat(QKeyEventH(Event)) then + begin + QEvent_ignore(Event); + exit; + end; + FillChar(KeyMsg{%H-}, SizeOf(KeyMsg), #0); FillChar(CharMsg{%H-}, SizeOf(CharMsg), #0); UTF8Text := '';