aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2019-02-07 17:35:51 +0100
committerAndy Shaw <andy.shaw@qt.io>2020-03-18 11:47:57 +0100
commit4df52eee2b40244ba1a3d115a43ed51cfd742105 (patch)
tree279ec9a3cdc70cd54173d70a7027602e62d96295 /src/quicktemplates2
parent364e94d3217fe0081c88a6bb563b1ca7829dc6eb (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.cpp1
-rw-r--r--src/quicktemplates2/qquickpopuppositioner.cpp14
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;
}