diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-12-04 07:11:26 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-12-04 07:11:26 +0300 |
commit | 61678ca8ae8013a572b343bb772f2fd8e52243ad (patch) | |
tree | 28316b2af0fed7aa45db4e4550339c306ac3601f /source/blender/editors/interface/interface_context_menu.c | |
parent | e7641b683427b724d104ad56c93c4c641a5f759b (diff) |
Fix T57076: Remove property from favourites menu fails
Diffstat (limited to 'source/blender/editors/interface/interface_context_menu.c')
-rw-r--r-- | source/blender/editors/interface/interface_context_menu.c | 16 |
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( |