diff options
author | Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> | 2016-01-28 16:07:13 +0100 |
---|---|---|
committer | Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> | 2016-01-29 13:18:13 +0000 |
commit | 6774edcef0f9f34d41d1156f6c9748f6d9a18930 (patch) | |
tree | 9d6a5be969b4ace8a8e7e4eb70fbd774b6c0d53e /src/plugins | |
parent | 48ae2dac07fc15cfbcd79632305ba0f88a850459 (diff) |
winrt: set initial window size
After creating the swapchain we set an initial size for the content
matching the screen size. Only afterwards append it to the canvas.
This fixes problems where dialogs were scaled wrongly, sometimes up to 4
times too big.
Task-number: QTBUG-50335
Change-Id: Ie3ad9aa3509dfa105ae2ac2b95d2662ff25cdeba
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/winrt/qwinrtwindow.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtwindow.cpp b/src/plugins/platforms/winrt/qwinrtwindow.cpp index bec94c1e51..034879c478 100644 --- a/src/plugins/platforms/winrt/qwinrtwindow.cpp +++ b/src/plugins/platforms/winrt/qwinrtwindow.cpp @@ -133,6 +133,15 @@ QWinRTWindow::QWinRTWindow(QWindow *window) hr = d->swapChainPanel.As(&d->uiElement); Q_ASSERT_SUCCEEDED(hr); + ComPtr<Xaml::IFrameworkElement> frameworkElement; + hr = d->swapChainPanel.As(&frameworkElement); + Q_ASSERT_SUCCEEDED(hr); + const QSizeF size = QSizeF(d->screen->geometry().size()) / d->screen->scaleFactor(); + hr = frameworkElement->put_Width(size.width()); + Q_ASSERT_SUCCEEDED(hr); + hr = frameworkElement->put_Height(size.height()); + Q_ASSERT_SUCCEEDED(hr); + ComPtr<IDependencyObject> canvas = d->screen->canvas(); ComPtr<IPanel> panel; hr = canvas.As(&panel); |