diff --git a/src/App/Document.cpp b/src/App/Document.cpp index 28976853d0..5c01df8069 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -3282,6 +3282,8 @@ void Document::_removeObject(DocumentObject* pcObject, RemoveObjectOptions optio pcObject->unsetupObject(); } signalDeletedObject(*pcObject); + signalTransactionRemove(*pcObject, d->rollback ? nullptr : d->activeUndoTransaction); + breakDependency(pcObject, true); // TODO Check me if it's needed (2015-09-01, Fat-Zer) // remove the tip if needed @@ -3298,16 +3300,8 @@ void Document::_removeObject(DocumentObject* pcObject, RemoveObjectOptions optio // do no transactions if we do a rollback! if (!d->rollback && d->activeUndoTransaction) { - // Undo stuff - signalTransactionRemove(*pcObject, d->activeUndoTransaction); - breakDependency(pcObject, true); d->activeUndoTransaction->addObjectNew(pcObject); } - else { - // for a rollback delete the object - signalTransactionRemove(*pcObject, 0); - breakDependency(pcObject, true); - } std::unique_ptr tobedestroyed; if ((options.testFlag(RemoveObjectOption::MayDestroyOutOfTransaction) && !d->rollback && !d->activeUndoTransaction)