fix crash when using widgets that delete on close

This commit is contained in:
Syarif Fakhri
2022-10-14 16:09:13 +08:00
parent 5b3ad7e5db
commit ad0c2103bf
3 changed files with 11 additions and 7 deletions

View File

@@ -1054,9 +1054,10 @@ bool DockContainerWidgetPrivate::restoreAutoHideDockArea(CDockingStateReader& s,
}
CDockAreaWidget* DockArea = nullptr;
CAutoHideDockContainer* dockContainer = nullptr;
if (!Testing)
{
const auto dockContainer = new CAutoHideDockContainer(DockManager, area, _this);
dockContainer = new CAutoHideDockContainer(DockManager, area, _this);
if (!dockContainer->restoreState(s, Testing))
{
return false;
@@ -1108,6 +1109,11 @@ bool DockContainerWidgetPrivate::restoreAutoHideDockArea(CDockingStateReader& s,
DockArea->autoHideDockContainer()->toggleView(!Closed);
}
if (dockContainer && !dockContainer->dockWidget())
{
dockContainer->cleanupAndDelete();
}
return true;
}