diff options
author | Andy Shaw <andy.shaw@qt.io> | 2019-02-07 17:35:51 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2020-03-18 11:47:57 +0100 |
commit | 4df52eee2b40244ba1a3d115a43ed51cfd742105 (patch) | |
tree | 279ec9a3cdc70cd54173d70a7027602e62d96295 /src/quicktemplates2 | |
parent | 364e94d3217fe0081c88a6bb563b1ca7829dc6eb (diff) |
Menu: account for the scale when getting the size before positioning
Fixes: QTBUG-73687
Change-Id: Id2d6a6b5c6651337ab7ae26d07011160b79654bf
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopuppositioner.cpp | 14 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index ecb2568e..d108420e 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -471,6 +471,7 @@ void QQuickPopupPrivate::finalizeEnterTransition() if (focus) popupItem->setFocus(true); transitionState = NoTransition; + getPositioner()->reposition(); emit q->openedChanged(); emit q->opened(); } diff --git a/src/quicktemplates2/qquickpopuppositioner.cpp b/src/quicktemplates2/qquickpopuppositioner.cpp index ebd8ff29..dbe8ac1d 100644 --- a/src/quicktemplates2/qquickpopuppositioner.cpp +++ b/src/quicktemplates2/qquickpopuppositioner.cpp @@ -108,10 +108,11 @@ void QQuickPopupPositioner::reposition() return; } - const qreal w = popupItem->width(); - const qreal h = popupItem->height(); - const qreal iw = popupItem->implicitWidth(); - const qreal ih = popupItem->implicitHeight(); + const qreal scale = popupItem->scale(); + const qreal w = popupItem->width() * scale; + const qreal h = popupItem->height() * scale; + const qreal iw = popupItem->implicitWidth() * scale; + const qreal ih = popupItem->implicitHeight() * scale; bool widthAdjusted = false; bool heightAdjusted = false; @@ -257,10 +258,9 @@ void QQuickPopupPositioner::reposition() } if (!p->hasWidth && widthAdjusted && rect.width() > 0) - popupItem->setWidth(rect.width()); + popupItem->setWidth(rect.width() / scale); if (!p->hasHeight && heightAdjusted && rect.height() > 0) - popupItem->setHeight(rect.height()); - + popupItem->setHeight(rect.height() / scale); m_positioning = false; } |