QWaylandWindow: Init parent wl_surface when creating subsurface
Fixes recreating subsurfaces after hiding and then again showing the window. Pick-to: 6.5 Change-Id: I2e3e7ceb42ec6b25cb64db260dfb74f6ebb10d27 Reviewed-by: David Edmundson <davidedmundson@kde.org>
This commit is contained in:
parent
d66e8f148f
commit
4f8399d307
@ -131,6 +131,8 @@ void QWaylandWindow::initWindow()
|
|||||||
Q_ASSERT(!mSubSurfaceWindow);
|
Q_ASSERT(!mSubSurfaceWindow);
|
||||||
|
|
||||||
auto *parent = static_cast<QWaylandWindow *>(QPlatformWindow::parent());
|
auto *parent = static_cast<QWaylandWindow *>(QPlatformWindow::parent());
|
||||||
|
if (!parent->mSurface)
|
||||||
|
parent->initializeWlSurface();
|
||||||
if (parent->wlSurface()) {
|
if (parent->wlSurface()) {
|
||||||
if (::wl_subsurface *subsurface = mDisplay->createSubSurface(this, parent))
|
if (::wl_subsurface *subsurface = mDisplay->createSubSurface(this, parent))
|
||||||
mSubSurfaceWindow = new QWaylandSubSurface(this, parent, subsurface);
|
mSubSurfaceWindow = new QWaylandSubSurface(this, parent, subsurface);
|
||||||
|
@ -199,6 +199,10 @@ void tst_surface::createSubsurfaceForHiddenParent()
|
|||||||
|
|
||||||
// Make sure the client doesn't quit before it has a chance to crash
|
// Make sure the client doesn't quit before it has a chance to crash
|
||||||
xdgPingAndWaitForPong();
|
xdgPingAndWaitForPong();
|
||||||
|
|
||||||
|
// Make sure the subsurface was actually created
|
||||||
|
const Subsurface *subsurface = exec([=] {return subSurface(0);});
|
||||||
|
QVERIFY(subsurface);
|
||||||
}
|
}
|
||||||
|
|
||||||
QCOMPOSITOR_TEST_MAIN(tst_surface)
|
QCOMPOSITOR_TEST_MAIN(tst_surface)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user