Salome HOME
Fix passing events during the Undo operation (issues #2062, #2070)
authorazv <azv@opencascade.com>
Thu, 30 Mar 2017 13:59:26 +0000 (16:59 +0300)
committerazv <azv@opencascade.com>
Thu, 30 Mar 2017 14:00:28 +0000 (17:00 +0300)
src/Events/Events_Loop.cpp
src/Model/Model_Update.cpp

index 1bbe62aaa7138980b2e39686ec3ce369f5a30289..0d380b76b6df90ce014b9335b829327daf920ed9 100644 (file)
@@ -207,7 +207,7 @@ void Events_Loop::flush(const Events_ID& theID)
       }
     }
   }
-  if (hasEventsToFlush && myGroups.empty()) {
+  if (hasEventsToFlush && myGroups.empty() && myFlushed.empty()) {
     // no more messages left in the queue, so, finalize the sketch processing
     static Events_ID anID = Events_Loop::eventByName("SketchPrepared");
     std::shared_ptr<Events_Message> aMsg(new Events_Message(anID, this));
index f1e23dcf8f4588637780ecde79aecfb49f6b13bf..2c18d72bc9b6c673acce6543c69f36a40d20d7b4 100755 (executable)
@@ -500,10 +500,6 @@ bool Model_Update::processFeature(FeaturePtr theFeature)
           (*aRIter)->attributeChanged("External");
       }
     }
-    // send event that sketch is prepared to be recomputed
-    static Events_ID anID = Events_Loop::eventByName("SketchPrepared");
-    std::shared_ptr<Events_Message> aMsg(new Events_Message(anID, this));
-    Events_Loop::loop()->send(aMsg);
   }
 
   if (!aIsModified) { // no modification is needed