summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/android/qandroidplatformwindow.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp
index a88cb9b823..c64805b4e2 100644
--- a/src/plugins/platforms/android/qandroidplatformwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp
@@ -46,6 +46,7 @@
#include <qguiapplication.h>
#include <qpa/qwindowsysteminterface.h>
+#include <private/qhighdpiscaling_p.h>
QT_BEGIN_NAMESPACE
@@ -58,6 +59,15 @@ QAndroidPlatformWindow::QAndroidPlatformWindow(QWindow *window)
m_windowState = Qt::WindowNoState;
m_windowId = winIdGenerator.fetchAndAddRelaxed(1) + 1;
setWindowState(window->windowStates());
+
+ const bool forceMaximize = m_windowState & (Qt::WindowMaximized | Qt::WindowFullScreen);
+ const QRect requestedGeometry = forceMaximize ? QRect() : window->geometry();
+ const QRect availableGeometry = (window->parent()) ? window->parent()->geometry() : platformScreen()->availableGeometry();
+ const QRect finalGeometry = QPlatformWindow::initialGeometry(window, requestedGeometry,
+ availableGeometry.width(), availableGeometry.height());
+
+ if (requestedGeometry != finalGeometry)
+ setGeometry(QHighDpi::toNativePixels(finalGeometry, window));
}
void QAndroidPlatformWindow::lower()