- } else if (theMessage->eventID() == kOpStartEvent) {
- // we don't need the update only on operation start (caused problems in PartSet_Listener::processEvent)
- isOperationChanged = true;
- } else if (theMessage->eventID() == kOpFinishEvent || theMessage->eventID() == kOpAbortEvent) {
- processOperation(true, theMessage->eventID() == kOpFinishEvent);
- isOperationChanged = true;
- }
- if (isOperationChanged) {
- // remove all macros before clearing all created and execute all not-previewed
- std::set<ObjectPtr>::iterator anUpdatedIter = myJustUpdated.begin();
- while(anUpdatedIter != myJustUpdated.end()) {
+ } else if (theMessage->eventID() == kOpFinishEvent || theMessage->eventID() == kOpAbortEvent ||
+ theMessage->eventID() == kOpStartEvent) {
+ myIsParamUpdated = false;
+
+ if (!(theMessage->eventID() == kOpStartEvent)) {
+ myIsFinish = true;
+ processOperation(true, theMessage->eventID() == kOpFinishEvent);
+ myIsFinish = false;
+ }
+ // remove all macros before clearing all created
+ std::set<ObjectPtr>::iterator anUpdatedIter = myWaitForFinish.begin();
+ while(anUpdatedIter != myWaitForFinish.end()) {