forked from Mirrors/openclonk
editor: keep track of viewports properly
When removing a viewport, then also remove it from the internal list of viewports. Otherwise, we might attempt to delete it again later. Fixes crash on editor shutdown on Linux.console-destruction
parent
2d324c10e0
commit
4e7b396d31
|
@ -915,12 +915,19 @@ void C4ConsoleGUIState::AddViewport(C4ViewportWindow *cvp)
|
|||
void C4ConsoleGUIState::RemoveViewport(C4ViewportWindow *cvp)
|
||||
{
|
||||
if (!viewport_area) return;
|
||||
for (auto vp : viewports)
|
||||
|
||||
for (auto iter = viewports.begin(); iter != viewports.end(); )
|
||||
{
|
||||
auto vp = *iter;
|
||||
if (vp->GetViewportWindow() == cvp)
|
||||
{
|
||||
viewport_area->removeDockWidget(vp);
|
||||
vp->deleteLater();
|
||||
iter = viewports.erase(iter);
|
||||
}
|
||||
else
|
||||
{
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue