Correct recent menu split
authorCampbell Barton <ideasman42@gmail.com>
Fri, 13 Jul 2018 16:56:59 +0000 (18:56 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 13 Jul 2018 16:56:59 +0000 (18:56 +0200)
Somehow duplicate API didn't error when linking.

source/blender/windowmanager/intern/wm.c
source/blender/windowmanager/intern/wm_menu_type.c

index 9e7136dc81d072bcf4a0ac07a5448d40e36bf9a5..f92cc511449b897bc947e1bfbdd4601a0c7d3356 100644 (file)
@@ -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)
index 58e85716bf14fa6b47ef08e5755691302997f5a0..97ca569095428a27d0747545b8c14650b0268fc3 100644 (file)
@@ -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);
        }