From 819c391da45bd578694b54477c932c16b573359b Mon Sep 17 00:00:00 2001 From: nds Date: Tue, 24 May 2016 14:21:10 +0300 Subject: [PATCH] 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. --- src/SketchSolver/SketchSolver_Manager.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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(); -- 2.39.2