From f3114120f2d6f81f424ee542635c2711f66b516b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= Date: Tue, 5 Jan 2016 00:58:50 +0100 Subject: QtGui: Don't set a screen to a child window This is a partial revert of eaa3a9d0108cdf692f1686cafefb7b834f0e5af6 Task-number: QTBUG-50081 Change-Id: Ic3dc4daa90d7a968a4ebf45d3029c99a12985686 Reviewed-by: Shawn Rutledge --- src/gui/kernel/qwindow.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 83e8777627..21734f1619 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -609,18 +609,20 @@ void QWindow::setParent(QWindow *parent) } QObject::setParent(parent); + d->parentWindow = parent; - QPlatformWindow *parentPlatformWindow = parent ? parent->d_func()->platformWindow : Q_NULLPTR; - - if (parentPlatformWindow) + if (parent) d->disconnectFromScreen(); else d->connectToScreen(newScreen); - if (d->platformWindow) - d->platformWindow->setParent(parentPlatformWindow); - - d->parentWindow = parent; + if (d->platformWindow) { + if (parent && parent->d_func()->platformWindow) { + d->platformWindow->setParent(parent->d_func()->platformWindow); + } else { + d->platformWindow->setParent(0); + } + } QGuiApplicationPrivate::updateBlockedStatus(this); } -- cgit v1.2.3