diff --git a/src/Mod/Mesh/Gui/ViewProvider.cpp b/src/Mod/Mesh/Gui/ViewProvider.cpp index 0535929462..0f92a4186e 100644 --- a/src/Mod/Mesh/Gui/ViewProvider.cpp +++ b/src/Mod/Mesh/Gui/ViewProvider.cpp @@ -1787,6 +1787,8 @@ void ViewProviderMesh::removeFacets(const std::vector& facets) // get the colour property if there App::PropertyColorList* prop = getColorProperty(); + bool ok = Coloring.getValue(); + if (prop && prop->getSize() == static_cast(kernel->countPoints())) { std::vector pointDegree; unsigned long invalid = kernel->getPointDegree(facets, pointDegree); @@ -1807,7 +1809,7 @@ void ViewProviderMesh::removeFacets(const std::vector& facets) prop->setValues(valid_colors); } } - else if (prop && prop->getSize() == static_cast(kernel->countPoints())) { + else if (prop && prop->getSize() == static_cast(kernel->countFacets())) { // switch off coloring mode Coloring.setValue(false); @@ -1823,12 +1825,16 @@ void ViewProviderMesh::removeFacets(const std::vector& facets) if (validFacets[index]) valid_colors.push_back(colors[index]); } + + prop->setValues(valid_colors); } //Remove the facets from the mesh and open a transaction object for the undo/redo stuff kernel->deleteFacets(facets); meshProp.finishEditing(); pcObject->purgeTouched(); + + Coloring.setValue(ok); } void ViewProviderMesh::selectFacet(unsigned long facet)