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:
authorPhilipp Oeser <info@graphics-engineer.com>2018-12-20 15:00:32 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2018-12-21 23:06:52 +0300
commitc79b8490976554d448435ae9b61d0697ad40e79f (patch)
tree0a408306cd7e9d3b88cb5961b23d5cc3591b4da3 /source/blender/editors/interface/interface_context_menu.c
parente6e2f655857b43326d74577c50755409d7beaf53 (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.c11
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);
}