diff options
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformwindow.cpp | 10 |
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() |