[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