diff options
author | Inho Lee <inho.lee@qt.io> | 2022-08-22 15:05:12 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-11-10 14:00:15 +0000 |
commit | 379e74afdf8c074913b221c3ce2629f397570047 (patch) | |
tree | 71bb275cb1fa61dc08aa5fce36cc783f595d4090 /src | |
parent | 208d97cab2d448b8610167605966b9cbf7b1c6bc (diff) |
Fix the popup position of a Menu
QPA code should operate in native coord.
Treat QWidgetPlatformMenu::showPopup's input as native coord.
Fixes: QTBUG-94619
Fixes: QTBUG-94783
Change-Id: Iaa030c96d84e4a588e625fe191e4324f70be961f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
(cherry picked from commit f8cf17166c9af147f0b8fea72f5b4a8a6098a5d7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/labs/platform/widgets/qwidgetplatformmenu.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/labs/platform/widgets/qwidgetplatformmenu.cpp b/src/labs/platform/widgets/qwidgetplatformmenu.cpp index 1db01a5e79..f640b6bc06 100644 --- a/src/labs/platform/widgets/qwidgetplatformmenu.cpp +++ b/src/labs/platform/widgets/qwidgetplatformmenu.cpp @@ -6,6 +6,7 @@ #include <QtGui/qaction.h> #include <QtGui/qwindow.h> +#include <QtGui/private/qhighdpiscaling_p.h> #include <QtWidgets/qmenu.h> QT_BEGIN_NAMESPACE @@ -112,7 +113,7 @@ void QWidgetPlatformMenu::showPopup(const QWindow *window, const QRect &targetRe QPoint targetPos = targetRect.bottomLeft(); if (window) - targetPos = window->mapToGlobal(targetPos); + targetPos = window->mapToGlobal(QHighDpi::fromNativeLocalPosition(targetPos, window)); const QWidgetPlatformMenuItem *widgetItem = qobject_cast<const QWidgetPlatformMenuItem *>(item); m_menu->popup(targetPos, widgetItem ? widgetItem->action() : nullptr); |