diff --git a/lcl/interfaces/qt5/qtwidgets.pas b/lcl/interfaces/qt5/qtwidgets.pas index 1463e10786..92666b89b3 100644 --- a/lcl/interfaces/qt5/qtwidgets.pas +++ b/lcl/interfaces/qt5/qtwidgets.pas @@ -6200,7 +6200,9 @@ begin QEventMouseButtonRelease: begin Result := SlotMouse(Sender, Event); - if not QWidget_hasFocus(Widget) and (QMouseEvent_button(QMouseEventH(Event)) = QtLeftButton) then + if not QWidget_hasFocus(Widget) and + (QMouseEvent_button(QMouseEventH(Event)) = QtLeftButton) and + (QWidget_focusPolicy(Widget) > QtNoFocus) then begin QObject_blockSignals(Sender, True); Application.QueueAsyncCall(@PushButtonUnblock, PtrInt(Sender)); diff --git a/lcl/interfaces/qt6/qtwidgets.pas b/lcl/interfaces/qt6/qtwidgets.pas index fae82fa9b7..675b7be565 100644 --- a/lcl/interfaces/qt6/qtwidgets.pas +++ b/lcl/interfaces/qt6/qtwidgets.pas @@ -6215,7 +6215,9 @@ begin QEventMouseButtonRelease: begin Result := SlotMouse(Sender, Event); - if not QWidget_hasFocus(Widget) and (QMouseEvent_button(QMouseEventH(Event)) = QtLeftButton) then + if not QWidget_hasFocus(Widget) and + (QMouseEvent_button(QMouseEventH(Event)) = QtLeftButton) and + (QWidget_focusPolicy(Widget) > QtNoFocus) then begin QObject_blockSignals(Sender, True); Application.QueueAsyncCall(@PushButtonUnblock, PtrInt(Sender));