diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2018-12-20 15:00:32 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2018-12-21 23:06:52 +0300 |
commit | c79b8490976554d448435ae9b61d0697ad40e79f (patch) | |
tree | 0a408306cd7e9d3b88cb5961b23d5cc3591b4da3 /source/blender/editors/interface/interface_context_menu.c | |
parent | e6e2f655857b43326d74577c50755409d7beaf53 (diff) |
Fix T58327: Quick Favorites "Remove from Favorites" missing for added
Modifiers
Since user menu entries from SPACE_BUTS/SPACE_TOPBAR are also shown in
other Editors (SPACE_VIEW3D), also allow these entries to be removed
from Quick Favorites from these Editors.
Match and deduplicate logic from screen_user_menu_draw() and
ui_popup_context_menu_for_button().
Reviewers: campbellbarton, brecht
Maniphest Tasks: T58327
Differential Revision: https://developer.blender.org/D4112
Diffstat (limited to 'source/blender/editors/interface/interface_context_menu.c')
-rw-r--r-- | source/blender/editors/interface/interface_context_menu.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c index d9967625199..fc7d3293333 100644 --- a/source/blender/editors/interface/interface_context_menu.c +++ b/source/blender/editors/interface/interface_context_menu.c @@ -699,8 +699,13 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but) "Add to a user defined context menu (stored in the user preferences)"); UI_but_func_set(but2, popup_user_menu_add_or_replace_func, but, NULL); - bUserMenu *um = ED_screen_user_menu_find(C); - if (um) { + uint um_array_len; + bUserMenu **um_array = ED_screen_user_menus_find(C, &um_array_len); + for (int um_index = 0; um_index < um_array_len; um_index++) { + bUserMenu *um = um_array[um_index]; + if (um == NULL) { + continue; + } bUserMenuItem *umi = ui_but_user_menu_find(C, but, um); if (umi != NULL) { but2 = uiDefIconTextBut( @@ -710,6 +715,8 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but) UI_but_func_set(but2, popup_user_menu_remove_func, um, umi); } } + MEM_freeN(um_array); + uiItemS(layout); } |