Fix: "Jump To Target" showing up in workspace context menu
Issue introduced on d227c58e3e.
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
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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__ */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user