diff --git a/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp b/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp index c7c1c4c515..1c481cd6fa 100644 --- a/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp +++ b/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp @@ -157,11 +157,6 @@ double FeatureBlendCurve::RelativeToRealParameters(double relativeValue, double void FeatureBlendCurve::onChanged(const App::Property *prop) { - // using a mutex and lock to protect a recursive calling when setting the new values - if (lockOnChangeMutex) - return; - Base::StateLocker lock(lockOnChangeMutex); - if (prop == &StartContinuity) { auto changedStartProp = dynamic_cast(prop); @@ -177,5 +172,11 @@ void FeatureBlendCurve::onChanged(const App::Property *prop) EndContinuity.setValue(maxDegree - 2 - StartContinuity.getValue()); } } + if (prop == &StartContinuity || prop == &StartParameter || prop == &StartSize || prop == &EndContinuity || prop == &EndParameter || prop == &EndSize) { + if (!isRestoring()) { + App::DocumentObjectExecReturn *ret = recompute(); + delete ret; + } + } Part::Spline::onChanged(prop); }