From 1d4edddddb7bf12b50f43dd9531259c04f767dae Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Mon, 4 Jan 2021 08:00:41 +0800 Subject: [PATCH] Gui: fix external edit reset crash By making sure to signal from the owner document of the editing object. The owner document of the editing object may be different from the editing document in case of editing external linked object. --- src/Gui/Document.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 4b28736248..0b938181ff 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -477,8 +477,10 @@ void Document::_resetEdit(void) // 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(d->_editViewProvider))); + if (d->_editViewProvider && d->_editViewProvider->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId())) { + auto vpd = static_cast(d->_editViewProvider); + vpd->getDocument()->signalResetEdit(*vpd); + } d->_editViewProvider = 0; // The logic below is not necessary anymore, because this method is