diff options
-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 */ |