summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBłażej Szczygieł <spaz16@wp.pl>2016-01-01 20:02:42 +0100
committerShawn Rutledge <shawn.rutledge@theqtcompany.com>2016-01-04 13:22:39 +0000
commiteaa3a9d0108cdf692f1686cafefb7b834f0e5af6 (patch)
tree9940fd9fffa4aac8480d5df31bdd2063c75c9ce2 /src
parent7fdfaad43f75bab9d701b0b55c13570d2140fde4 (diff)
Fix crash because of NULL screen in QXcbWindow
Change-Id: If7bbe3ad1656dadcb098bcd3ece2e7b064eeb44d Task-number: QTBUG-50081 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qwindow.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index e728d32e4b..83e8777627 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -609,18 +609,16 @@ void QWindow::setParent(QWindow *parent)
}
QObject::setParent(parent);
- if (parent)
+
+ QPlatformWindow *parentPlatformWindow = parent ? parent->d_func()->platformWindow : Q_NULLPTR;
+
+ if (parentPlatformWindow)
d->disconnectFromScreen();
else
d->connectToScreen(newScreen);
- if (d->platformWindow) {
- if (parent && parent->d_func()->platformWindow) {
- d->platformWindow->setParent(parent->d_func()->platformWindow);
- } else {
- d->platformWindow->setParent(0);
- }
- }
+ if (d->platformWindow)
+ d->platformWindow->setParent(parentPlatformWindow);
d->parentWindow = parent;