From: nds Date: Tue, 24 May 2016 11:21:10 +0000 (+0300) Subject: Rectangle problem correction. Wrong case is: create rectangle, move by the first... X-Git-Tag: V_2.3.1~65 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=819c391da45bd578694b54477c932c16b573359b;p=modules%2Fshaper.git Rectangle problem correction. Wrong case is: create rectangle, move by the first point, it is unclosed. Solver do not processes rectangle feature, but PartSet_WidgetPoint2D::storeValueCustom() relies on flush of updated. Result is that the solver flushes updated signal for not processed features and change own state to reacts to this signal. --- diff --git a/src/SketchSolver/SketchSolver_Manager.cpp b/src/SketchSolver/SketchSolver_Manager.cpp index dec3ead7e..4f16f7cd7 100644 --- a/src/SketchSolver/SketchSolver_Manager.cpp +++ b/src/SketchSolver/SketchSolver_Manager.cpp @@ -135,6 +135,10 @@ void SketchSolver_Manager::processEvent( hasProperFeature = true; } } + if (!hasProperFeature) // in this iteration it will compute nothing, so, no problem with recursion + // it is important that solver flushes signal updated after processing move signal as there is + // optimization that relies on this update, might be found by key "optimization" + myIsComputed = false; } else { std::list aSketchFeatures = SketchSolver_Group::selectApplicableFeatures(aFeatures); std::list::iterator aFeatIter = aSketchFeatures.begin();