X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_ConstraintMulti.cpp;h=58634795baca9d49a923dfb0cf48ebc978b48286;hb=d5b5ce2284869d8b97ce638502c58c810bbeb0c7;hp=6842ef07a3fb92b62d45f88de51001e37571911e;hpb=5ee7596b443cbf3b727dfe304ebef095bcb6f788;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_ConstraintMulti.cpp b/src/SketchSolver/SketchSolver_ConstraintMulti.cpp index 6842ef07a..58634795b 100644 --- a/src/SketchSolver/SketchSolver_ConstraintMulti.cpp +++ b/src/SketchSolver/SketchSolver_ConstraintMulti.cpp @@ -235,14 +235,18 @@ void SketchSolver_ConstraintMulti::notify(const FeaturePtr& theFeature, if (myIsProcessingNotify) return; // "notify" is already processing - myIsProcessingNotify = true; + // do not adjust "multi"-constraint if the number of objects is changed, + // wait until the constraint is updated (issue #2425: changing number of copies by parameter) + if (myNumberOfCopies + 1 == myBaseConstraint->integer(nameNbObjects())->value()) { + myIsProcessingNotify = true; - // update derivative object - updateLocal(); - myAdjusted = false; - adjustConstraint(); + // update derivative object + updateLocal(); + myAdjusted = false; + adjustConstraint(); - myIsProcessingNotify = false; + myIsProcessingNotify = false; + } } void SketchSolver_ConstraintMulti::blockEvents(bool isBlocked)