[Bf-blender-cvs] [2e043c266bf] master: Fix: "Jump To Target" showing up in workspace context menu

Dalai Felinto noreply at git.blender.org
Fri Mar 15 14:53:48 CET 2019


Commit: 2e043c266bfff4b0de7c1cb2b324549cdf5a742b
Author: Dalai Felinto
Date:   Fri Mar 15 10:49:26 2019 -0300
Branches: master
https://developer.blender.org/rB2e043c266bfff4b0de7c1cb2b324549cdf5a742b

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

===================================================================

M	source/blender/editors/interface/interface_context_menu.c
M	source/blender/editors/interface/interface_intern.h
M	source/blender/editors/interface/interface_ops.c

===================================================================

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



More information about the Bf-blender-cvs mailing list