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:
authorCampbell Barton <ideasman42@gmail.com>2018-12-04 07:11:26 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-12-04 07:11:26 +0300
commit61678ca8ae8013a572b343bb772f2fd8e52243ad (patch)
tree28316b2af0fed7aa45db4e4550339c306ac3601f
parente7641b683427b724d104ad56c93c4c641a5f759b (diff)
Fix T57076: Remove property from favourites menu fails
-rw-r--r--source/blender/editors/interface/interface_context_menu.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c
index 5f7cd68a875..111aa64e771 100644
--- a/source/blender/editors/interface/interface_context_menu.c
+++ b/source/blender/editors/interface/interface_context_menu.c
@@ -235,9 +235,21 @@ static bUserMenuItem *ui_but_user_menu_find(bContext *C, uiBut *but, bUserMenu *
}
else if (but->rnaprop) {
const char *member_id = WM_context_member_from_ptr(C, &but->rnapoin);
+ const char *data_path = RNA_path_from_ID_to_struct(&but->rnapoin);
+ const char *member_id_data_path = member_id;
+ if (data_path) {
+ member_id_data_path = BLI_sprintfN("%s.%s", member_id, data_path);
+ }
const char *prop_id = RNA_property_identifier(but->rnaprop);
- return (bUserMenuItem *)ED_screen_user_menu_item_find_prop(
- &um->items, member_id, prop_id, but->rnaindex);
+ bUserMenuItem *umi = (bUserMenuItem *)ED_screen_user_menu_item_find_prop(
+ &um->items, member_id_data_path, prop_id, but->rnaindex);
+ if (data_path) {
+ MEM_freeN((void *)data_path);
+ }
+ if (member_id != member_id_data_path) {
+ MEM_freeN((void *)member_id_data_path);
+ }
+ return umi;
}
else if ((mt = UI_but_menutype_get(but))) {
return (bUserMenuItem *)ED_screen_user_menu_item_find_menu(