From 969c4bf8ae9bec20d6ff189bd511aea9150fa1af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=BDeljan=20Rikalo?= Date: Wed, 26 Feb 2025 12:17:22 +0000 Subject: [PATCH] Qt,Qt5,Qt6: do not send KeyUp if key is autorepeated. issue #41472 (cherry picked from commit f90db81742d071816d7e033f1e3c23de51916df6) Co-authored-by: zeljan1 --- 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 5b07d5dc79..b82d385015 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 e4ce8a73bd..07f9852c59 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 := '';