diff options
author | Hans Goudey <h.goudey@me.com> | 2021-05-20 19:17:54 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-05-20 19:17:54 +0300 |
commit | 991a1cdf5dae6aeae2053d993f9983d8965a82be (patch) | |
tree | 969a825786ad897e1ee8f3dbc2b6ca83d5f56868 /source/blender/editors/space_node | |
parent | ee5bfde9e6eda215499f5586a502444ff3945bfa (diff) |
Fix T87316: No undo push for clicking on attribute name
Since there is a special callback for assigning the name from the
search box, and the callback doesn't call an operator or something
else that would do an undo push, I think the solution is to do it
manually here.
Another option would be adding the button flag "UI_BUT_UNDO", which
isn't set by default for search buttons, but that gives us ugly names for
the undo steps, so an explicit push is better in this case.
Differential Revision: https://developer.blender.org/D11190
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/node_geometry_attribute_search.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/space_node/node_geometry_attribute_search.cc b/source/blender/editors/space_node/node_geometry_attribute_search.cc index 856a90be5ae..94080a7b616 100644 --- a/source/blender/editors/space_node/node_geometry_attribute_search.cc +++ b/source/blender/editors/space_node/node_geometry_attribute_search.cc @@ -33,6 +33,8 @@ #include "RNA_access.h" #include "RNA_enum_types.h" +#include "ED_undo.h" + #include "BLT_translation.h" #include "UI_interface.h" @@ -132,7 +134,7 @@ static void attribute_search_update_fn(const bContext *UNUSED(C), BLI_string_search_free(search); } -static void attribute_search_exec_fn(bContext *UNUSED(C), void *data_v, void *item_v) +static void attribute_search_exec_fn(bContext *C, void *data_v, void *item_v) { AttributeSearchData *data = static_cast<AttributeSearchData *>(data_v); AvailableAttributeInfo *item = static_cast<AvailableAttributeInfo *>(item_v); @@ -140,6 +142,8 @@ static void attribute_search_exec_fn(bContext *UNUSED(C), void *data_v, void *it bNodeSocket &socket = data->socket; bNodeSocketValueString *value = static_cast<bNodeSocketValueString *>(socket.default_value); BLI_strncpy(value->value, item->name.c_str(), MAX_NAME); + + ED_undo_push(C, "Assign Attribute Name"); } void node_geometry_add_attribute_search_button(const bContext *C, |