macOS: Fix crash when showing parent-less platform menus
Change-Id: I80f02da1621e4088eb040bb16a4db3867b6ad4d7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 7886fa8474bb6fc0274ef05f15981bc795125a47) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
17ff61e898
commit
1b5455b979
@ -386,7 +386,7 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, const QRect &targetRect,
|
|||||||
|
|
||||||
QCocoaScreen *cocoaScreen = static_cast<QCocoaScreen *>(screen->handle());
|
QCocoaScreen *cocoaScreen = static_cast<QCocoaScreen *>(screen->handle());
|
||||||
int availableHeight = cocoaScreen->availableGeometry().height();
|
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;
|
int menuHeight = m_nativeMenu.size.height;
|
||||||
if (globalPos.y() + menuHeight > availableHeight) {
|
if (globalPos.y() + menuHeight > availableHeight) {
|
||||||
// Maybe we need to fix the vertical popup position but we don't know the
|
// 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,
|
// The calls above block, and also swallow any mouse release event,
|
||||||
// so we need to clear any mouse button that triggered the menu popup.
|
// so we need to clear any mouse button that triggered the menu popup.
|
||||||
if (!cocoaWindow->isForeignWindow())
|
if (cocoaWindow && !cocoaWindow->isForeignWindow())
|
||||||
[qnsview_cast(view) resetMouseButtons];
|
[qnsview_cast(view) resetMouseButtons];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user