diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm index 4c7064a845b..1ad0cfea47f 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.mm +++ b/src/plugins/platforms/cocoa/qcocoamenu.mm @@ -386,7 +386,7 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, const QRect &targetRect, QCocoaScreen *cocoaScreen = static_cast(screen->handle()); int availableHeight = cocoaScreen->availableGeometry().height(); - const QPoint &globalPos = cocoaWindow->mapToGlobal(pos); + const QPoint globalPos = cocoaWindow ? cocoaWindow->mapToGlobal(pos) : pos; int menuHeight = m_nativeMenu.size.height; if (globalPos.y() + menuHeight > availableHeight) { // Maybe we need to fix the vertical popup position but we don't know the @@ -430,7 +430,7 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, const QRect &targetRect, // The calls above block, and also swallow any mouse release event, // so we need to clear any mouse button that triggered the menu popup. - if (!cocoaWindow->isForeignWindow()) + if (cocoaWindow && !cocoaWindow->isForeignWindow()) [qnsview_cast(view) resetMouseButtons]; }