diff options
author | Mansur Isaev <737dab2f169a@mail.ru> | 2024-05-25 08:01:34 +0400 |
---|---|---|
committer | Mansur Isaev <737dab2f169a@mail.ru> | 2024-05-25 10:23:10 +0400 |
commit | e88095ed8fbc7039c1724e51ee84f154fdf49305 (patch) | |
tree | 4990e2991534d5af046b48d5c73b330f17567f35 | |
parent | b7feebefabc2d48b0d4794cd31fc141f1caecc5c (diff) | |
download | redot-engine-e88095ed8fbc7039c1724e51ee84f154fdf49305.tar.gz |
Fix method name for custom callable
-rw-r--r-- | core/object/undo_redo.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/object/undo_redo.cpp b/core/object/undo_redo.cpp index 4d67cd930e..0f7884305a 100644 --- a/core/object/undo_redo.cpp +++ b/core/object/undo_redo.cpp @@ -159,10 +159,11 @@ void UndoRedo::add_do_method(const Callable &p_callable) { do_op.ref = Ref<RefCounted>(Object::cast_to<RefCounted>(object)); } do_op.type = Operation::TYPE_METHOD; - do_op.name = p_callable.get_method(); - if (do_op.name == StringName()) { - // There's no `get_method()` for custom callables, so use `operator String()` instead. + // There's no `get_method()` for custom callables, so use `operator String()` instead. + if (p_callable.is_custom()) { do_op.name = static_cast<String>(p_callable); + } else { + do_op.name = p_callable.get_method(); } actions.write[current_action + 1].do_ops.push_back(do_op); @@ -190,10 +191,11 @@ void UndoRedo::add_undo_method(const Callable &p_callable) { } undo_op.type = Operation::TYPE_METHOD; undo_op.force_keep_in_merge_ends = force_keep_in_merge_ends; - undo_op.name = p_callable.get_method(); - if (undo_op.name == StringName()) { - // There's no `get_method()` for custom callables, so use `operator String()` instead. + // There's no `get_method()` for custom callables, so use `operator String()` instead. + if (p_callable.is_custom()) { undo_op.name = static_cast<String>(p_callable); + } else { + undo_op.name = p_callable.get_method(); } actions.write[current_action + 1].undo_ops.push_back(undo_op); |