diff options
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index efa52456e8..4a5fe0e82b 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2482,6 +2482,12 @@ bool QApplicationPrivate::sendMouseEvent(QWidget *receiver, QMouseEvent *event, bool widgetUnderMouse = QRectF(receiver->rect()).contains(event->localPos()); + // Clear the obsolete leaveAfterRelease value, if mouse button has been released but + // leaveAfterRelease has not been updated. + // This happens e.g. when modal dialog or popup is shown as a response to button click. + if (leaveAfterRelease && !*buttonDown && !event->buttons()) + leaveAfterRelease = 0; + if (*buttonDown) { if (!graphicsWidget) { // Register the widget that shall receive a leave event |