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 := '';