diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2019-03-15 16:49:26 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2019-03-15 16:53:35 +0300 |
commit | 2e043c266bfff4b0de7c1cb2b324549cdf5a742b (patch) | |
tree | e206963fcb6cd990e87693f0a1634ec2044fa7f2 /source | |
parent | d5d518b96c16bb36342d99f63aa7d1569e650cdf (diff) |
Fix: "Jump To Target" showing up in workspace context menu
Issue introduced on d227c58e3ec2020.
This was affecting WorkSpaces as well as background scene and probably
other places. We use the operator poll to decide whether to show it.
Reviewers: brecht, mont29
Differential Revision: https://developer.blender.org/D4488
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_context_menu.c | 10 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_intern.h | 4 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_ops.c | 4 |
3 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c index d075052f842..5c870e6a281 100644 --- a/source/blender/editors/interface/interface_context_menu.c +++ b/source/blender/editors/interface/interface_context_menu.c @@ -678,9 +678,13 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but) /* Pointer properties and string properties with * prop_search support jumping to target object/bone. */ if (but->rnapoin.data && but->rnaprop) { - const PropertyType type = RNA_property_type(but->rnaprop); - - if ((type == PROP_POINTER) || (type == PROP_STRING && but->type == UI_BTYPE_SEARCH_MENU && but->search_func == ui_rna_collection_search_cb)) { + const PropertyType prop_type = RNA_property_type(but->rnaprop); + if (((prop_type == PROP_POINTER) || + (prop_type == PROP_STRING && + but->type == UI_BTYPE_SEARCH_MENU && + but->search_func == ui_rna_collection_search_cb)) && + ui_jump_to_target_button_poll(C)) + { uiItemO(layout, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Jump To Target"), ICON_NONE, "UI_OT_jump_to_target_button"); uiItemS(layout); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index e5f6f09e2eb..b0eb63712e2 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -900,4 +900,8 @@ typedef struct uiRNACollectionSearch { } uiRNACollectionSearch; void ui_rna_collection_search_cb(const struct bContext *C, void *arg, const char *str, uiSearchItems *items); +/* interface_ops.c */ +bool ui_jump_to_target_button_poll(struct bContext *C); + + #endif /* __INTERFACE_INTERN_H__ */ diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c index d39fe514f99..773d624fd5d 100644 --- a/source/blender/editors/interface/interface_ops.c +++ b/source/blender/editors/interface/interface_ops.c @@ -949,7 +949,7 @@ static bool jump_to_target_button(bContext *C, bool poll) return false; } -static bool jump_to_target_button_poll(bContext *C) +bool ui_jump_to_target_button_poll(bContext *C) { return jump_to_target_button(C, true); } @@ -969,7 +969,7 @@ static void UI_OT_jump_to_target_button(wmOperatorType *ot) ot->description = "Switch to the target object or bone"; /* callbacks */ - ot->poll = jump_to_target_button_poll; + ot->poll = ui_jump_to_target_button_poll; ot->exec = jump_to_target_button_exec; /* flags */ |