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:
-rw-r--r--source/blender/editors/interface/interface_context_menu.c10
-rw-r--r--source/blender/editors/interface/interface_intern.h4
-rw-r--r--source/blender/editors/interface/interface_ops.c4
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 */