From 9e6860d864d0f630f92f2fb7130412e9387aea26 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 14 Nov 2011 14:42:47 +0000 Subject: fix [#29242] menus have no keyboard shortcuts --- source/blender/windowmanager/WM_api.h | 1 - source/blender/windowmanager/WM_keymap.h | 2 +- source/blender/windowmanager/intern/wm.c | 20 -------------------- source/blender/windowmanager/intern/wm_keymap.c | 10 +++++----- source/blender/windowmanager/intern/wm_operators.c | 2 +- 5 files changed, 7 insertions(+), 28 deletions(-) (limited to 'source/blender/windowmanager') diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 8b55db27761..fcdb6d25083 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -233,7 +233,6 @@ void WM_operator_py_idname(char *to, const char *from); void WM_menutype_init(void); struct MenuType *WM_menutype_find(const char *idname, int quiet); int WM_menutype_add(struct MenuType* mt); -int WM_menutype_contains(struct MenuType* mt); void WM_menutype_freelink(struct MenuType* mt); void WM_menutype_free(void); diff --git a/source/blender/windowmanager/WM_keymap.h b/source/blender/windowmanager/WM_keymap.h index 250752e661a..f254358e3cf 100644 --- a/source/blender/windowmanager/WM_keymap.h +++ b/source/blender/windowmanager/WM_keymap.h @@ -92,7 +92,7 @@ void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *key const char *WM_key_event_string(short type); int WM_key_event_operator_id(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, int hotkey, struct wmKeyMap **keymap_r); -char *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, char *str, int len); +char *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, const short sloppy, char *str, int len); #ifdef __cplusplus } diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 10c3735685c..c6c67e22bfd 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -175,26 +175,6 @@ int WM_menutype_add(MenuType* mt) return 1; } -/* inefficient but only used for tooltip code */ -int WM_menutype_contains(MenuType* mt) -{ - int found= FALSE; - - if(mt) { - GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash); - - for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) { - if(mt == BLI_ghashIterator_getValue(iter)) { - found= TRUE; - break; - } - } - BLI_ghashIterator_free(iter); - } - - return found; -} - void WM_menutype_freelink(MenuType* mt) { BLI_ghash_remove(menutypes_hash, mt->idname, NULL, (GHashValFreeFP)MEM_freeN); diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 9957d24c7ab..2e191a5ab6d 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -852,19 +852,19 @@ static wmKeyMapItem *wm_keymap_item_find_props(const bContext *C, const char *op return found; } -static wmKeyMapItem *wm_keymap_item_find(const bContext *C, const char *opname, int opcontext, IDProperty *properties, int hotkey, wmKeyMap **keymap_r) +static wmKeyMapItem *wm_keymap_item_find(const bContext *C, const char *opname, int opcontext, IDProperty *properties, const short hotkey, const short sloppy, wmKeyMap **keymap_r) { wmKeyMapItem *found= wm_keymap_item_find_props(C, opname, opcontext, properties, 1, hotkey, keymap_r); - if(!found) + if(!found && sloppy) found= wm_keymap_item_find_props(C, opname, opcontext, NULL, 0, hotkey, keymap_r); return found; } -char *WM_key_event_operator_string(const bContext *C, const char *opname, int opcontext, IDProperty *properties, char *str, int len) +char *WM_key_event_operator_string(const bContext *C, const char *opname, int opcontext, IDProperty *properties, const short sloppy, char *str, int len) { - wmKeyMapItem *kmi= wm_keymap_item_find(C, opname, opcontext, properties, 0, NULL); + wmKeyMapItem *kmi= wm_keymap_item_find(C, opname, opcontext, properties, 0, sloppy, NULL); if(kmi) { WM_keymap_item_to_string(kmi, str, len); @@ -876,7 +876,7 @@ char *WM_key_event_operator_string(const bContext *C, const char *opname, int op int WM_key_event_operator_id(const bContext *C, const char *opname, int opcontext, IDProperty *properties, int hotkey, wmKeyMap **keymap_r) { - wmKeyMapItem *kmi= wm_keymap_item_find(C, opname, opcontext, properties, hotkey, keymap_r); + wmKeyMapItem *kmi= wm_keymap_item_find(C, opname, opcontext, properties, hotkey, TRUE, keymap_r); if(kmi) return kmi->id; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 4367a8b03ef..7fb6ba6e26b 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1362,7 +1362,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons /* check for hotkey */ if(len < 256-6) { - if(WM_key_event_operator_string(C, ot->idname, WM_OP_EXEC_DEFAULT, NULL, &name[len+1], 256-len-1)) + if(WM_key_event_operator_string(C, ot->idname, WM_OP_EXEC_DEFAULT, NULL, TRUE, &name[len+1], 256-len-1)) name[len]= '|'; } -- cgit v1.2.3