From 7a29ed4f2e4297cf88028eea03d43390f13a93ff Mon Sep 17 00:00:00 2001 From: Chris Clyne Date: Fri, 12 Jan 2024 14:12:13 +0000 Subject: [PATCH] GooEngine: Add Disable search on KeyPress option --- scripts/startup/bl_ui/space_userpref.py | 1 + source/blender/editors/interface/interface_handlers.cc | 2 +- source/blender/editors/interface/interface_layout.cc | 2 +- .../editors/interface/interface_region_menu_popup.cc | 2 +- source/blender/makesdna/DNA_userdef_types.h | 3 ++- source/blender/makesrna/intern/rna_userdef.cc | 9 ++++++++- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 82540c34026..c56ef3a41cb 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -2602,6 +2602,7 @@ class USERPREF_PT_experimental_debugging(ExperimentalPanel, Panel): ({"property": "use_viewport_debug"}, None), ({"property": "use_eevee_debug"}, None), ({"property": "disable_material_icon"}, None), + ({"property": "disable_search_on_keypress"}, None), ), ) diff --git a/source/blender/editors/interface/interface_handlers.cc b/source/blender/editors/interface/interface_handlers.cc index 2fdcf6c3f0b..c478b6263f9 100644 --- a/source/blender/editors/interface/interface_handlers.cc +++ b/source/blender/editors/interface/interface_handlers.cc @@ -10784,7 +10784,7 @@ static int ui_handle_menu_event(bContext *C, /* Menu search if space-bar or #MenuTypeFlag::SearchOnKeyPress. */ MenuType *mt = WM_menutype_find(menu->menu_idname, true); - if ((mt && bool(mt->flag & MenuTypeFlag::SearchOnKeyPress)) || + if ((mt && bool(mt->flag & MenuTypeFlag::SearchOnKeyPress) && !bool(U.experimental.disable_search_on_keypress)) || event->type == EVT_SPACEKEY) { if ((level != 0) && (but == nullptr || !menu->menu_idname[0])) { /* Search parent if the child is open but not activated or not searchable. */ diff --git a/source/blender/editors/interface/interface_layout.cc b/source/blender/editors/interface/interface_layout.cc index 3a1c38c4fb9..2aa4c0c82ae 100644 --- a/source/blender/editors/interface/interface_layout.cc +++ b/source/blender/editors/interface/interface_layout.cc @@ -5970,7 +5970,7 @@ void UI_menutype_draw(bContext *C, MenuType *mt, uiLayout *layout) } uiBlock *block = uiLayoutGetBlock(layout); - if (bool(mt->flag & MenuTypeFlag::SearchOnKeyPress)) { + if (bool(mt->flag & MenuTypeFlag::SearchOnKeyPress) && !bool(U.experimental.disable_search_on_keypress)) { UI_block_flag_enable(block, UI_BLOCK_NO_ACCELERATOR_KEYS); } if (mt->listener) { diff --git a/source/blender/editors/interface/interface_region_menu_popup.cc b/source/blender/editors/interface/interface_region_menu_popup.cc index 6df2fe203d2..00b7a3474c7 100644 --- a/source/blender/editors/interface/interface_region_menu_popup.cc +++ b/source/blender/editors/interface/interface_region_menu_popup.cc @@ -626,7 +626,7 @@ static void ui_popup_menu_create_from_menutype(bContext *C, STRNCPY(handle->menu_idname, mt->idname); handle->can_refresh = true; - if (bool(mt->flag & MenuTypeFlag::SearchOnKeyPress)) { + if (bool(mt->flag & MenuTypeFlag::SearchOnKeyPress) && !bool(U.experimental.disable_search_on_keypress)) { ED_workspace_status_text(C, TIP_("Type to search...")); } else if (mt->idname[0]) { diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 33c19b9c252..494e41447ff 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -697,6 +697,7 @@ typedef struct UserDef_Experimental { char use_viewport_debug; char use_all_linked_data_direct; char disable_material_icon; + char disable_search_on_keypress; char SANITIZE_AFTER_HERE; /* The following options are automatically sanitized (set to 0) * when the release cycle is not alpha. */ @@ -713,7 +714,7 @@ typedef struct UserDef_Experimental { char use_shader_node_previews; char use_extension_repos; - char _pad[1]; + /* char _pad[0]; */ /** `makesdna` does not allow empty structs. */ } UserDef_Experimental; diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index a89d68d50f9..68570219157 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -7028,13 +7028,20 @@ static void rna_def_userdef_experimental(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_userdef_update"); prop = RNA_def_property(srna, "disable_material_icon", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "disable_material_icon", 1); + RNA_def_property_boolean_sdna(prop, nullptr, "disable_material_icon", 1); RNA_def_property_ui_text( prop, "Disable Material Icon Rendering", "If true, Material Preview Icons will NOT be rendered. " "This can prevent stuttering from opening the material ID menu"); + prop = RNA_def_property(srna, "disable_search_on_keypress", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, nullptr, "disable_search_on_keypress", 1); + RNA_def_property_ui_text( + prop, + "Disable Search On Key Press", + "Ignore menus tagged with Search On Key Press, and fallback to using accelerator keys instead"); + prop = RNA_def_property(srna, "use_new_curves_tools", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, nullptr, "use_new_curves_tools", 1);