winrt: Fix potential startup crash

Depending on the windowstate passed to QWinRTWindow constructor we might
act on the uiElement which has not been created yet. This happened
especially in release mode, probably due to timing.

Hence delay uiElement changes until we created it in the constructor and
can ensure it is valid.

Change-Id: I00daa9fcf8542a0535bbcb663a76d85c36e510e2
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
Maurice Kalinowski 2016-05-03 10:35:03 +02:00
parent 33c5df2887
commit dbd81a0b9f

View File

@ -108,9 +108,6 @@ QWinRTWindow::QWinRTWindow(QWindow *window)
d->surface = EGL_NO_SURFACE;
d->display = EGL_NO_DISPLAY;
d->screen = static_cast<QWinRTScreen *>(screen());
setWindowFlags(window->flags());
setWindowState(window->windowState());
setWindowTitle(window->title());
handleContentOrientationChange(window->contentOrientation());
d->surfaceFormat.setAlphaBufferSize(0);
@ -158,6 +155,10 @@ QWinRTWindow::QWinRTWindow(QWindow *window)
});
Q_ASSERT_SUCCEEDED(hr);
setWindowFlags(window->flags());
setWindowState(window->windowState());
setWindowTitle(window->title());
setGeometry(window->geometry());
}