From 11e64ed3dfbcfc1406abf9f2cffda52827e13f75 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 29 Nov 2019 22:24:16 +0100 Subject: [PATCH] for restored view providers of a redo again call handleChildren3D() to update scene graph --- src/Gui/Document.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index b7d5687d94..38e6514709 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -104,6 +104,7 @@ struct DocumentP std::map _ViewProviderMap; std::map _CoinMap; std::map _ViewProviderMapAnnotation; + std::list _redoViewProviders; typedef boost::signals2::connection Connection; Connection connectNewObject; @@ -690,6 +691,9 @@ void Document::slotNewObject(const App::DocumentObject& Obj) // it is possible that a new viewprovider already claims children handleChildren3D(pcProvider); + if (d->_isTransacting) { + d->_redoViewProviders.push_back(pcProvider); + } } } @@ -2152,6 +2156,10 @@ void Document::redo(int iSteps) getDocument()->redo(); } App::GetApplication().signalRedo(); + + for (auto it : d->_redoViewProviders) + handleChildren3D(it); + d->_redoViewProviders.clear(); } PyObject* Document::getPyObject(void)