From dbd81a0b9f884feae797c2a27a59cc9011fb32ff Mon Sep 17 00:00:00 2001
From: Maurice Kalinowski <maurice.kalinowski@qt.io>
Date: Tue, 3 May 2016 10:35:03 +0200
Subject: [PATCH] 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>
---
 src/plugins/platforms/winrt/qwinrtwindow.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/plugins/platforms/winrt/qwinrtwindow.cpp b/src/plugins/platforms/winrt/qwinrtwindow.cpp
index f5407f87797..75b43205b7b 100644
--- a/src/plugins/platforms/winrt/qwinrtwindow.cpp
+++ b/src/plugins/platforms/winrt/qwinrtwindow.cpp
@@ -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());
 }
 
-- 
GitLab