Gui: add coinRemoveAllChildren to work around Coin3D bug
See bug description: https://bitbucket.org/Coin3D/coin/pull-requests/119/fix-sochildlist-auditing/diff Because of path based rendering (SoFCPathAnnotation) in mouse over highlight, this bug causes crash more frequently here comparing to upstream. All C++ calling of SoGroup::removeAllChildren() is replaced by Gui::coinRemoveAllChildren(), and python code is fixed by monkey patching SoGroup.removeAllChildren() in FreeCADGuiInit.py.
This commit is contained in:
@@ -848,8 +848,8 @@ void ManualAlignment::startAlignment(Base::Type mousemodel)
|
||||
void ManualAlignment::continueAlignment()
|
||||
{
|
||||
myFixedGroup.clearPoints();
|
||||
d->picksepLeft->removeAllChildren();
|
||||
d->picksepRight->removeAllChildren();
|
||||
coinRemoveAllChildren(d->picksepLeft);
|
||||
coinRemoveAllChildren(d->picksepRight);
|
||||
|
||||
if (!myAlignModel.isEmpty()) {
|
||||
AlignmentGroup& grp = myAlignModel.activeGroup();
|
||||
@@ -891,8 +891,8 @@ void ManualAlignment::reset()
|
||||
myFixedGroup.setAlignable(false);
|
||||
myFixedGroup.clear();
|
||||
|
||||
d->picksepLeft->removeAllChildren();
|
||||
d->picksepRight->removeAllChildren();
|
||||
coinRemoveAllChildren(d->picksepLeft);
|
||||
coinRemoveAllChildren(d->picksepRight);
|
||||
|
||||
if (myDocument) {
|
||||
this->connectDocumentDeletedObject.disconnect();
|
||||
@@ -1186,8 +1186,8 @@ void ManualAlignment::onClear()
|
||||
myAlignModel.activeGroup().clear();
|
||||
myFixedGroup.clear();
|
||||
|
||||
d->picksepLeft->removeAllChildren();
|
||||
d->picksepRight->removeAllChildren();
|
||||
coinRemoveAllChildren(d->picksepLeft);
|
||||
coinRemoveAllChildren(d->picksepRight);
|
||||
}
|
||||
|
||||
void ManualAlignment::onCancel()
|
||||
|
||||
Reference in New Issue
Block a user