diff options
Diffstat (limited to 'src/widgets/kernel/qwindowcontainer.cpp')
-rw-r--r-- | src/widgets/kernel/qwindowcontainer.cpp | 8 |
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(); } } |