From 3ea1486071313798e6a66dd3f6e271bb47ae772b 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