Ensure objects recorded using RecordObject or RecordObjects are registered as an undoable action.
In most cases there is no reason to invoke FlushUndoRecordObjects since it's automatically done right after mouse-up and certain other events that conventionally marks the end of an action.