From f21e106a2b0c37b5ed3b5c344f0ccde57ca5f6fd Mon Sep 17 00:00:00 2001 From: zeljko Date: Sun, 14 Mar 2010 20:38:14 +0000 Subject: [PATCH] Qt: fix for QtKeyDelete for QAbstractSpinBox. fixes #15981 git-svn-id: trunk@23995 - --- lcl/interfaces/qt/qtwidgets.pas | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index b1e7de7bce..141497a8ff 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -817,6 +817,7 @@ type public procedure AttachEvents; override; procedure DetachEvents; override; + function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override; procedure SignalEditingFinished; cdecl; end; @@ -7050,6 +7051,23 @@ begin inherited DetachEvents; end; +function TQtAbstractSpinBox.EventFilter(Sender: QObjectH; Event: QEventH + ): Boolean; cdecl; +var + IsDeleteKey: Boolean; +begin + if (QEvent_type(Event) = QEventKeyPress) or + (QEvent_type(Event) = QEventKeyRelease) then + IsDeleteKey := (QKeyEvent_key(QKeyEventH(Event)) = QtKey_Delete) and + (QKeyEvent_modifiers(QKeyEventH(Event)) = QtNoModifier) + else + IsDeleteKey := False; + Result := inherited EventFilter(Sender, Event); + {we must pass delete key to qt, qabstractspinbox doesn't like what we do} + if IsDeleteKey then + Result := False; +end; + procedure TQtAbstractSpinBox.SignalEditingFinished; cdecl; var Msg: TLMessage;