diff --git a/src/private/multisplitter/Item.cpp b/src/private/multisplitter/Item.cpp index 5e0e576d..17b7e8d0 100644 --- a/src/private/multisplitter/Item.cpp +++ b/src/private/multisplitter/Item.cpp @@ -1259,7 +1259,7 @@ void ItemBoxContainer::removeItem(Item *item, bool hardRemove) // Empty container is useless, delete it if (auto p = parentContainer()) p->removeItem(this, /*hardDelete=*/true); - } else if (!hardRemove && !hasVisibleChildren()) { + } else if (!hasVisibleChildren()) { if (auto p = parentContainer()) { p->removeItem(this, /*hardDelete=*/false); setGeometry(QRect()); diff --git a/tests/tst_docks.cpp b/tests/tst_docks.cpp index b4514472..e8720375 100644 --- a/tests/tst_docks.cpp +++ b/tests/tst_docks.cpp @@ -5764,8 +5764,12 @@ void TestDocks::tst_deleteDockWidget() delete dw1; + // Frame is deleted delayed + QTest::qWait(1000); + + m1->multiSplitter()->dumpLayout(); + // Dock3 now occupies everything, separator was deleted - QEXPECT_FAIL("", "To be fixed", Continue); QVERIFY(m1->multiSplitter()->separators().isEmpty()); }