mySelectionFeature.reset();
} else {
setCurrentFeature(FeaturePtr(), false); // disables all features
+ // update the OB: features are disabled (on remove of Part)
+ Events_Loop* aLoop = Events_Loop::loop();
+ static Events_ID aDeleteEvent = Events_Loop::eventByName(EVENT_OBJECT_DELETED);
+ aLoop->flush(aDeleteEvent);
}
std::static_pointer_cast<Model_Session>(Model_Session::get())->setCheckTransactions(true);
if (!myNestedNum.empty())
(*myNestedNum.rbegin())--;
// roll back the needed number of transactions
- // make commit/undo to get the modification delta
//myDoc->AbortCommand();
- if (myDoc->CommitCommand()) {
+ // instead of abort, do commit and undo: to get the delta of modifications
+ if (myDoc->CommitCommand()) {
modifiedLabels(myDoc, aDeltaLabels);
myDoc->Undo();
}
int Model_Document::size(const std::string& theGroupID)
{
+ if (myObjs == 0) // may be on close
+ return 0;
return myObjs->size(theGroupID);
}