summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoamenu.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenu.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm
index ff3aeaeb11..a92f4e875c 100644
--- a/src/plugins/platforms/cocoa/qcocoamenu.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenu.mm
@@ -48,6 +48,7 @@
#include "qcocoaapplication.h"
#include "qcocoamenuloader.h"
#include "qcocoawindow.h"
+#import "qnsview.h"
static inline QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *getMenuLoader()
{
@@ -313,18 +314,10 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, QPoint pos, const QPlatf
NSPoint nsPos = NSMakePoint(pos.x(), pos.y());
[m_nativeMenu popUpMenuPositioningItem:nsItem atLocation:nsPos inView:view];
- // The call above blocks and swallows the mouse release event, so we send a
- // synthetic one to bring back any QQuickMouseArea back to a more normal state.
- NSEvent *releaseEvent = [NSEvent mouseEventWithType:NSLeftMouseUp
- location:nsPos
- modifierFlags:0
- timestamp:0
- windowNumber:view.window.windowNumber
- context:[NSGraphicsContext currentContext]
- eventNumber:0
- clickCount:0
- pressure:1.0];
- [view.window sendEvent:releaseEvent];
+ // The call above blocks, and also swallows any mouse release event,
+ // so we need to clear any mouse button that triggered the menu popup.
+ if ([view isKindOfClass:[QNSView class]])
+ [(QNSView *)view resetMouseButtons];
}
QPlatformMenuItem *QCocoaMenu::menuItemAt(int position) const