Salome HOME
Issue #2101: A point cannot be coincident to both, X and Y axises
[modules/shaper.git] / src / SketchSolver / SketchSolver_Manager.cpp
index ec2f8d77bbb5be2f5047486ca7579ed016315d14..849c95b0c9eb6ac72de7010c53c2ec4abbb99b1a 100644 (file)
@@ -151,6 +151,7 @@ void SketchSolver_Manager::processEvent(
 
   // resolve constraints if needed
   bool needToUpdate = needToResolve && resolveConstraints();
+  releaseFeaturesIfEventsBlocked();
 
   // Features may be updated => now send events, but for all changed at once
   if (isUpdateFlushed)
@@ -238,11 +239,17 @@ bool SketchSolver_Manager::resolveConstraints()
   for (; aGroupIter != myGroups.end(); ++aGroupIter) {
     if ((*aGroupIter)->resolveConstraints())
       needToUpdate = true;
-    (*aGroupIter)->blockEvents(false);
   }
   return needToUpdate;
 }
 
+void SketchSolver_Manager::releaseFeaturesIfEventsBlocked() const
+{
+  std::list<SketchGroupPtr>::const_iterator aGroupIter = myGroups.begin();
+  for (; aGroupIter != myGroups.end(); ++aGroupIter)
+    (*aGroupIter)->blockEvents(false);
+}
+
 bool SketchSolver_Manager::stopSendUpdate() const
 {
 static const Events_ID anUpdateEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);