--- packag1/qtquickcontrols2/src/imports/platform/qquickplatformmenu.cpp Mon Feb 15 10:31:52 2021 +++ package/qtquickcontrols2/src/imports/platform/qquickplatformmenu.cpp Mon Feb 15 10:32:15 2021 @@ -803,7 +803,7 @@ #endif } m_handle->showPopup(window, - QHighDpi::toNativePixels(targetRect, window), + QHighDpi::toNativeLocalPosition(targetRect, window), menuItem ? menuItem->handle() : nullptr); } --- packag1/qtquickcontrols/src/controls/qquickmenu.cpp Mon Feb 15 11:08:45 2021 +++ package/qtquickcontrols/src/controls/qquickmenu.cpp Mon Feb 15 11:10:02 2021 @@ -458,7 +458,7 @@ globalTargetRect.translate(renderOffset); m_platformMenu->setMenuType(QPlatformMenu::MenuType(menuType)); m_platformMenu->showPopup(parentWindow, - QHighDpi::toNativePixels(globalTargetRect.toRect(), parentWindow), + QHighDpi::toNativeLocalPosition(globalTargetRect.toRect(), parentWindow), atItem ? atItem->platformItem() : 0); } else { m_popupWindow = new QQuickMenuPopupWindow1(this); --- packag1/qtquickcontrols2/src/quicktemplates2/qquickmenu.cpp Tue Feb 16 13:30:48 2021 +++ package/qtquickcontrols2/src/quicktemplates2/qquickmenu.cpp Tue Feb 16 13:31:14 2021 @@ -1270,8 +1270,13 @@ // on desktop platforms that have a mouse cursor available and support multiple windows. QQmlNullableValue pos; #if QT_CONFIG(cursor) - if (d->parentItem && QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows)) - pos = d->parentItem->mapFromGlobal(QCursor::pos()); + if (d->parentItem && QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows)) { + if (auto wnd = d->parentItem->window()) { + if (auto scr = wnd->screen()) { + pos = wnd->mapFromGlobal(QCursor::pos(scr)); + } + } + } #endif // As a fallback, center the menu over its parent item.