Revert "Fix 'UndoRedo's 'MERGE_ALL' mode repeating instructions when quickly commiting actions"
This reverts commit 79f1d8b4fb
.
This commit is contained in:
parent
4a9c0ed8d9
commit
dcf6c4a368
1 changed files with 19 additions and 13 deletions
|
@ -63,10 +63,12 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
|
||||||
_discard_redo();
|
_discard_redo();
|
||||||
|
|
||||||
// Check if the merge operation is valid
|
// Check if the merge operation is valid
|
||||||
if (p_mode == MERGE_ENDS && actions.size() && actions[actions.size() - 1].name == p_name && actions[actions.size() - 1].last_tick + 800 > ticks) {
|
if (p_mode != MERGE_DISABLE && actions.size() && actions[actions.size() - 1].name == p_name && actions[actions.size() - 1].last_tick + 800 > ticks) {
|
||||||
|
|
||||||
current_action = actions.size() - 2;
|
current_action = actions.size() - 2;
|
||||||
|
|
||||||
|
if (p_mode == MERGE_ENDS) {
|
||||||
|
|
||||||
// Clear all do ops from last action, and delete all object references
|
// Clear all do ops from last action, and delete all object references
|
||||||
List<Operation>::Element *E = actions.write[current_action + 1].do_ops.front();
|
List<Operation>::Element *E = actions.write[current_action + 1].do_ops.front();
|
||||||
|
|
||||||
|
@ -83,17 +85,21 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
|
||||||
E = E->next();
|
E = E->next();
|
||||||
actions.write[current_action + 1].do_ops.pop_front();
|
actions.write[current_action + 1].do_ops.pop_front();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
actions.write[actions.size() - 1].last_tick = ticks;
|
actions.write[actions.size() - 1].last_tick = ticks;
|
||||||
|
|
||||||
|
merge_mode = p_mode;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Action new_action;
|
Action new_action;
|
||||||
new_action.name = p_name;
|
new_action.name = p_name;
|
||||||
new_action.last_tick = ticks;
|
new_action.last_tick = ticks;
|
||||||
actions.push_back(new_action);
|
actions.push_back(new_action);
|
||||||
}
|
|
||||||
|
|
||||||
merge_mode = p_mode;
|
merge_mode = MERGE_DISABLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
action_level++;
|
action_level++;
|
||||||
|
|
Loading…
Reference in a new issue