path: root/src
diff options
authorTimur Pocheptsov <>2019-08-19 15:04:42 +0200
committerTor Arne Vestbø <>2019-08-19 15:07:47 +0000
commitfc049052812bfa0b63af1f3c5fcadf1eb582e775 (patch)
treeea806a414f24eda54aa5ca503c60312594fa668b /src
parent70e7445dbeba9bd24de963e7e431c4698b6b4569 (diff)
macOS: Bail out early in case a popup is closed by a mouseDown
It can happen that AppKit calls -mouseDown: on a popup's view, but we consider the click to be outside of popup's area (happens on the 1-pixel edge of a 'geometry', QRect::contains() returns false). If we send close event to essentially 'self', m_platformWindow is becoming nullptr. So we bail out early, no further processing is needed. Fixes: QTBUG-77348 Change-Id: I224943e6bcf4ae052412ef7dc7b23a94f999aa19 Reviewed-by: Tor Arne Vestbø <>
Diffstat (limited to 'src')
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/ b/src/plugins/platforms/cocoa/
index a887cb841d..3a5a074264 100644
--- a/src/plugins/platforms/cocoa/
+++ b/src/plugins/platforms/cocoa/
@@ -389,14 +389,16 @@
// Close the popups if the click was outside.
if (!inside) {
+ bool selfClosed = false;
Qt::WindowType type = QCocoaIntegration::instance()->activePopupWindow()->window()->type();
while (QCocoaWindow *popup = QCocoaIntegration::instance()->popPopupWindow()) {
+ selfClosed = self == popup->view();
// Consume the mouse event when closing the popup, except for tool tips
// were it's expected that the event is processed normally.
- if (type != Qt::ToolTip)
+ if (type != Qt::ToolTip || selfClosed)