summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwindowcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/kernel/qwindowcontainer.cpp')
-rw-r--r--src/widgets/kernel/qwindowcontainer.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwindowcontainer.cpp b/src/widgets/kernel/qwindowcontainer.cpp
index 81916bba90..4b289d2d33 100644
--- a/src/widgets/kernel/qwindowcontainer.cpp
+++ b/src/widgets/kernel/qwindowcontainer.cpp
@@ -227,6 +227,12 @@ QWindowContainer::QWindowContainer(QWindow *embeddedWindow, QWidget *parent, Qt:
embeddedWindow->setSurfaceType(QSurface::RasterGLSurface);
d->window = embeddedWindow;
+
+ QString windowName = d->window->objectName();
+ if (windowName.isEmpty())
+ windowName = QString::fromUtf8(d->window->metaObject()->className());
+ d->fakeParent.setObjectName(windowName + QLatin1String("ContainerFakeParent"));
+
d->window->setParent(&d->fakeParent);
setAcceptDrops(true);
@@ -309,6 +315,7 @@ bool QWindowContainer::event(QEvent *e)
d->window->setParent(d->usesNativeWidgets
? windowHandle()
: window()->windowHandle());
+ d->fakeParent.destroy();
}
if (d->window->parent()) {
d->markParentChain();
@@ -398,6 +405,7 @@ void QWindowContainer::parentWasChanged(QWidget *parent)
Q_ASSERT(toplevel->windowHandle());
}
d->window->setParent(toplevel->windowHandle());
+ d->fakeParent.destroy();
d->updateGeometry();
}
}