summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformwindow.cpp
diff options
context:
space:
mode:
authorMauro Persano <mauro.persano@kdab.com>2025-02-28 14:17:19 -0300
committerMauro Persano <mauro.persano@kdab.com>2025-04-11 20:11:57 -0300
commit7dc2532bed8977dd4166e9aa4be021b0ec39b5ba (patch)
treed3f9c6707a910ef009b75921f299d2c46db455ca /src/gui/kernel/qplatformwindow.cpp
parent7af5912e61160681be736ff07a1cd0a0f6b28944 (diff)
Determine screen with initialGeometry when not positioning automatically
Popups aren't automatically positioned, so use the screen at the initial geometry for scaling. Otherwise we may end up with the wrong geometry on systems that have multiple screens with different scales. Pick-to: 6.9 6.8 Fixes: QTBUG-134139 Change-Id: I686b1c8ab6cf458d9b849b529ba247ac8c3be064 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/gui/kernel/qplatformwindow.cpp')
-rw-r--r--src/gui/kernel/qplatformwindow.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gui/kernel/qplatformwindow.cpp b/src/gui/kernel/qplatformwindow.cpp
index 2a9fb240a8e..fff2709b89f 100644
--- a/src/gui/kernel/qplatformwindow.cpp
+++ b/src/gui/kernel/qplatformwindow.cpp
@@ -702,10 +702,10 @@ QRect QPlatformWindow::initialGeometry(const QWindow *w, const QRect &initialGeo
return QRect(initialGeometry.topLeft(), QHighDpi::toNative(deviceIndependentSize, factor));
}
const auto *wp = qt_window_private(const_cast<QWindow*>(w));
- const bool position = wp->positionAutomatic && w->type() != Qt::Popup;
- if (!position && !wp->resizeAutomatic)
+ const bool positionAutomatic = wp->positionAutomatic && w->type() != Qt::Popup;
+ if (!positionAutomatic && !wp->resizeAutomatic)
return initialGeometry;
- const QScreen *screen = wp->positionAutomatic
+ const QScreen *screen = positionAutomatic
? effectiveScreen(w)
: QGuiApplication::screenAt(initialGeometry.center());
if (!screen)
@@ -717,7 +717,7 @@ QRect QPlatformWindow::initialGeometry(const QWindow *w, const QRect &initialGeo
if (wp->resizeAutomatic)
deviceIndependentRect.setSize(
fixInitialSize(deviceIndependentRect.size(), w, defaultWidth, defaultHeight));
- if (position) {
+ if (positionAutomatic) {
const QRect availableDeviceIndependentGeometry = screen->availableGeometry();
// Center unless the geometry ( + unknown window frame) is too large for the screen).
if (deviceIndependentRect.height() < (availableDeviceIndependentGeometry.height() * 8) / 9