From 36960df73ea8355949ec9421984d498269a238f1 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Mon, 8 May 2017 20:46:44 -0400 Subject: [PATCH] Fix #2971 segfault on hide() current page from Python --- src/Mod/TechDraw/Gui/ViewProviderPage.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index 0773fd230b71..1579d890739e 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -116,18 +116,17 @@ void ViewProviderPage::show(void) void ViewProviderPage::hide(void) { - // hiding the drawing page should not affect its children but closes the MDI m_mdiView - // therefore do not call the method of its direct base class - ViewProviderDocumentObject::hide(); - if (m_mdiView) { - m_mdiView->parentWidget()->deleteLater(); + if (!m_mdiView.isNull()) { //m_mdiView is a QPointer + Gui::getMainWindow()->activatePreviousWindow(); + Gui::getMainWindow()->removeWindow(m_mdiView); } + ViewProviderDocumentObject::hide(); } void ViewProviderPage::updateData(const App::Property* prop) { if (prop == &(getDrawPage()->Views)) { - if(m_mdiView && + if(!m_mdiView.isNull() && !getDrawPage()->isDeleting()) { m_mdiView->updateDrawing(); }