Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2020-09-13 02:30:30 +0300
committerHans Goudey <h.goudey@me.com>2020-09-13 02:30:30 +0300
commit94aa5c0dd693a406517c2cd4865581794cf3368e (patch)
treeac12667b2180d4cf5689131c6320a5994b92483a
parent7b714a9897855ea566cc393a56b9873325c5f836 (diff)
parent2dd0161860227394c3aec95e35d7cb75f5543884 (diff)
Merge branch 'property-search-button-label-pointer' into property-search-move-context-to-panel
-rw-r--r--source/blender/editors/interface/interface.c1
-rw-r--r--source/blender/editors/interface/interface_intern.h1
-rw-r--r--source/blender/editors/interface/interface_layout.c16
3 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 10650da4b0e..2b80ef7ab82 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -3907,6 +3907,7 @@ uiBut *ui_but_change_type(uiBut *but, eButType new_type)
const bool found_layout = ui_layout_replace_but_ptr(but->layout, old_but_ptr, but);
BLI_assert(found_layout);
UNUSED_VARS_NDEBUG(found_layout);
+ ui_button_group_replace_but_ptr(but->layout, old_but_ptr, but);
}
}
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 4661d0816ae..9b89db5cda0 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -994,6 +994,7 @@ void ui_resources_free(void);
/* interface_layout.c */
void ui_layout_add_but(uiLayout *layout, uiBut *but);
bool ui_layout_replace_but_ptr(uiLayout *layout, const void *old_but_ptr, uiBut *new_but);
+void ui_button_group_replace_but_ptr(uiLayout *root, const void *old_but_ptr, uiBut *new_but);
uiBut *ui_but_add_search(uiBut *but,
PointerRNA *ptr,
PropertyRNA *prop,
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 983c3e5ebd3..7fce57b8f62 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -462,6 +462,22 @@ static void button_group_free(uiButtonGroup *button_group)
MEM_freeN(button_group);
}
+/* This function should be removed whenever #ui_layout_replace_but_ptr is removed. */
+void ui_button_group_replace_but_ptr(uiLayout *layout, const void *old_but_ptr, uiBut *new_but)
+{
+ LISTBASE_FOREACH (uiButtonGroup *, button_group, &layout->root->button_groups) {
+ LISTBASE_FOREACH (LinkData *, link, &button_group->buttons) {
+ if (link->data == old_but_ptr) {
+ link->data = new_but;
+ return;
+ }
+ }
+ }
+
+ /* The button should be in a group. */
+ BLI_assert(false);
+}
+
/** \} */
/* -------------------------------------------------------------------- */