Gui: fix crash on Document resetEdit
This commit is contained in:
@@ -971,6 +971,8 @@ Gui::MDIView* Application::editViewOfNode(SoNode *node) const
|
||||
}
|
||||
|
||||
void Application::setEditDocument(Gui::Document *doc) {
|
||||
if(doc == d->editDocument)
|
||||
return;
|
||||
if(!doc)
|
||||
d->editDocument = 0;
|
||||
for(auto &v : d->documents)
|
||||
|
||||
@@ -462,7 +462,12 @@ void Document::_resetEdit(void)
|
||||
}
|
||||
|
||||
d->_editViewProvider->finishEditing();
|
||||
if (d->_editViewProvider->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId()))
|
||||
|
||||
// Have to check d->_editViewProvider below, because there is a chance
|
||||
// the editing object gets deleted inside the above call to
|
||||
// 'finishEditing()', which will trigger our slotDeletedObject(), which
|
||||
// nullifies _editViewProvider.
|
||||
if (d->_editViewProvider && d->_editViewProvider->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId()))
|
||||
signalResetEdit(*(static_cast<ViewProviderDocumentObject*>(d->_editViewProvider)));
|
||||
d->_editViewProvider = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user