summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/widgets/kernel/qapplication.cpp6
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