for restored view providers of a redo again call handleChildren3D() to update scene graph

This commit is contained in:
wmayer
2019-11-29 22:24:16 +01:00
parent 73aa2a23fe
commit bf4bf624a4

View File

@@ -104,6 +104,7 @@ struct DocumentP
std::map<const App::DocumentObject*,ViewProviderDocumentObject*> _ViewProviderMap;
std::map<SoSeparator *,ViewProviderDocumentObject*> _CoinMap;
std::map<std::string,ViewProvider*> _ViewProviderMapAnnotation;
std::list<ViewProviderDocumentObject*> _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)