In the previous case(create, delete) in the bug scenario, logic was the following:
1. The constraint feature is removed from the model, values are aborted by document. Values are correct.
2. signal created emulate signal updated. Sketch solver listens it and updates features values according to constraint(the solver did not accept delete and has knowledge about constraint)
3. signal delete is listened by solver. It removes constraint. However values of the features are modified as the constraint is applyed.
So, the solver need to obtain delete signal before create/update.
aLoop->activateFlushes(isActive);
if (theFlush) {
- aLoop->flush(aCreateEvent);
aLoop->flush(aDeleteEvent);
+ aLoop->flush(aCreateEvent); // delete should be emitted before create to reacts to aborted feature
aLoop->flush(anUpdateEvent);
aLoop->flush(aCreateEvent); // after update of features, there could be results created
aLoop->flush(aDeleteEvent); // or deleted