From 6845306c68a874cb1a9171d6a08a1578eea41a8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 13 Jul 2018 18:56:59 +0200 Subject: Correct recent menu split Somehow duplicate API didn't error when linking. --- source/blender/windowmanager/intern/wm.c | 74 ---------------------- source/blender/windowmanager/intern/wm_menu_type.c | 10 +++ 2 files changed, 10 insertions(+), 74 deletions(-) (limited to 'source/blender') diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 9e7136dc81d..f92cc511449 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -282,80 +282,6 @@ void WM_uilisttype_free(void) uilisttypes_hash = NULL; } -/* ************ MenuType handling ************** */ - -static GHash *menutypes_hash = NULL; - -MenuType *WM_menutype_find(const char *idname, bool quiet) -{ - MenuType *mt; - - if (idname[0]) { - mt = BLI_ghash_lookup(menutypes_hash, idname); - if (mt) - return mt; - } - - if (!quiet) - printf("search for unknown menutype %s\n", idname); - - return NULL; -} - -bool WM_menutype_add(MenuType *mt) -{ - BLI_ghash_insert(menutypes_hash, mt->idname, mt); - return true; -} - -void WM_menutype_freelink(MenuType *mt) -{ - bool ok; - - ok = BLI_ghash_remove(menutypes_hash, mt->idname, NULL, MEM_freeN); - - BLI_assert(ok); - (void)ok; -} - -/* called on initialize WM_init() */ -void WM_menutype_init(void) -{ - /* reserve size is set based on blender default setup */ - menutypes_hash = BLI_ghash_str_new_ex("menutypes_hash gh", 512); -} - -void WM_menutype_free(void) -{ - GHashIterator gh_iter; - - GHASH_ITER (gh_iter, menutypes_hash) { - MenuType *mt = BLI_ghashIterator_getValue(&gh_iter); - if (mt->ext.free) { - mt->ext.free(mt->ext.data); - } - } - - BLI_ghash_free(menutypes_hash, NULL, MEM_freeN); - menutypes_hash = NULL; -} - -bool WM_menutype_poll(bContext *C, MenuType *mt) -{ - /* If we're tagged, only use compatible. */ - if (mt->owner_id[0] != '\0') { - const WorkSpace *workspace = CTX_wm_workspace(C); - if (BKE_workspace_owner_id_check(workspace, mt->owner_id) == false) { - return false; - } - } - - if (mt->poll != NULL) { - return mt->poll(C, mt); - } - return true; -} - /* ****************************************** */ void WM_keymap_init(bContext *C) diff --git a/source/blender/windowmanager/intern/wm_menu_type.c b/source/blender/windowmanager/intern/wm_menu_type.c index 58e85716bf1..97ca5690954 100644 --- a/source/blender/windowmanager/intern/wm_menu_type.c +++ b/source/blender/windowmanager/intern/wm_menu_type.c @@ -27,6 +27,7 @@ #include "BLI_sys_types.h" #include "DNA_windowmanager_types.h" +#include "DNA_workspace_types.h" #include "MEM_guardedalloc.h" @@ -36,6 +37,7 @@ #include "BKE_context.h" #include "BKE_library.h" #include "BKE_screen.h" +#include "BKE_workspace.h" #include "WM_api.h" #include "WM_types.h" @@ -98,6 +100,14 @@ void WM_menutype_free(void) bool WM_menutype_poll(bContext *C, MenuType *mt) { + /* If we're tagged, only use compatible. */ + if (mt->owner_id[0] != '\0') { + const WorkSpace *workspace = CTX_wm_workspace(C); + if (BKE_workspace_owner_id_check(workspace, mt->owner_id) == false) { + return false; + } + } + if (mt->poll != NULL) { return mt->poll(C, mt); } -- cgit v1.2.3