[Bf-blender-cvs] [979a5c34e45] blender2.8: Fix T59107: F3 does not work in Python console

Campbell Barton noreply at git.blender.org
Mon Dec 10 07:34:17 CET 2018


Commit: 979a5c34e45dbbf72c09981d4897de89b0e40b37
Author: Campbell Barton
Date:   Mon Dec 10 17:33:36 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB979a5c34e45dbbf72c09981d4897de89b0e40b37

Fix T59107: F3 does not work in Python console

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

M	source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 423d335c78b..bdfa13c3ac3 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -1623,8 +1623,35 @@ static int wm_search_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
 	return OPERATOR_FINISHED;
 }
 
-static int wm_search_menu_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNUSED(event))
+static int wm_search_menu_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 {
+	/* Exception for launching via spacebar */
+	if (event->type == SPACEKEY) {
+		bool ok = true;
+		ScrArea *sa = CTX_wm_area(C);
+		if (sa) {
+			if (sa->spacetype == SPACE_CONSOLE) {
+				/* So we can use the shortcut in the console. */
+				ok = false;
+			}
+			else if (sa->spacetype == SPACE_TEXT) {
+				/* So we can use the spacebar in the text editor. */
+				ok = false;
+			}
+		}
+		else {
+			Object *editob = CTX_data_edit_object(C);
+			if (editob && editob->type == OB_FONT) {
+				/* So we can use the spacebar for entering text. */
+				ok = false;
+			}
+		}
+		if (!ok) {
+			return OPERATOR_PASS_THROUGH;
+		}
+	}
+
+
 	struct SearchPopupInit_Data data = {
 		.size = {
 		    UI_searchbox_size_x() * 2,
@@ -1637,26 +1664,6 @@ static int wm_search_menu_invoke(bContext *C, wmOperator *UNUSED(op), const wmEv
 	return OPERATOR_INTERFACE;
 }
 
-/* op->poll */
-static bool wm_search_menu_poll(bContext *C)
-{
-	if (CTX_wm_window(C) == NULL) {
-		return 0;
-	}
-	else {
-		ScrArea *sa = CTX_wm_area(C);
-		if (sa) {
-			if (sa->spacetype == SPACE_CONSOLE) return 0;  /* XXX - so we can use the shortcut in the console */
-			if (sa->spacetype == SPACE_TEXT) return 0;     /* XXX - so we can use the spacebar in the text editor */
-		}
-		else {
-			Object *editob = CTX_data_edit_object(C);
-			if (editob && editob->type == OB_FONT) return 0;  /* XXX - so we can use the spacebar for entering text */
-		}
-	}
-	return 1;
-}
-
 static void WM_OT_search_menu(wmOperatorType *ot)
 {
 	ot->name = "Search Menu";
@@ -1665,7 +1672,7 @@ static void WM_OT_search_menu(wmOperatorType *ot)
 
 	ot->invoke = wm_search_menu_invoke;
 	ot->exec = wm_search_menu_exec;
-	ot->poll = wm_search_menu_poll;
+	ot->poll = WM_operator_winactive;
 }
 
 static int wm_call_menu_exec(bContext *C, wmOperator *op)



More information about the Bf-blender-cvs mailing list