Fix 'UndoRedo' increasing its version on actions that should be merged
This commit is contained in:
parent
6d27226134
commit
e63e3875d7
2 changed files with 8 additions and 1 deletions
|
@ -90,7 +90,7 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
|
|||
actions.write[actions.size() - 1].last_tick = ticks;
|
||||
|
||||
merge_mode = p_mode;
|
||||
|
||||
merging = true;
|
||||
} else {
|
||||
|
||||
Action new_action;
|
||||
|
@ -250,6 +250,11 @@ void UndoRedo::commit_action() {
|
|||
if (action_level > 0)
|
||||
return; //still nested
|
||||
|
||||
if (merging) {
|
||||
version--;
|
||||
merging = false;
|
||||
}
|
||||
|
||||
commiting++;
|
||||
redo(); // perform action
|
||||
commiting--;
|
||||
|
@ -396,6 +401,7 @@ UndoRedo::UndoRedo() {
|
|||
action_level = 0;
|
||||
current_action = -1;
|
||||
merge_mode = MERGE_DISABLE;
|
||||
merging = false;
|
||||
callback = NULL;
|
||||
callback_ud = NULL;
|
||||
|
||||
|
|
|
@ -80,6 +80,7 @@ private:
|
|||
int current_action;
|
||||
int action_level;
|
||||
MergeMode merge_mode;
|
||||
bool merging;
|
||||
uint64_t version;
|
||||
|
||||
void _pop_history_tail();
|
||||
|
|
Loading…
Reference in a new issue