diff options
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_init_exit.c | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 11 |
3 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 59a3f703614..bbd12ddfb0a 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -739,6 +739,7 @@ extern struct CLG_LogRef *WM_LOG_OPERATORS; extern struct CLG_LogRef *WM_LOG_HANDLERS; extern struct CLG_LogRef *WM_LOG_EVENTS; extern struct CLG_LogRef *WM_LOG_KEYMAPS; +extern struct CLG_LogRef *WM_LOG_TOOLS; #ifdef __cplusplus diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index d452c1638c8..1f17efa0845 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -136,6 +136,7 @@ CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_OPERATORS, "wm.operator"); CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_HANDLERS, "wm.handler"); CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_EVENTS, "wm.event"); CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_KEYMAPS, "wm.keymap"); +CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_TOOLS, "wm.tool"); static void wm_init_reports(bContext *C) { diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index 690628bbd3b..e449695e3cf 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -26,6 +26,8 @@ #include <string.h> +#include "CLG_log.h" + #include "BLI_utildefines.h" #include "BLI_string.h" @@ -78,7 +80,14 @@ void WM_toolsystem_unlink(bContext *C, WorkSpace *workspace) void WM_toolsystem_link(bContext *C, WorkSpace *workspace) { if (workspace->tool.manipulator_group[0]) { - WM_manipulator_group_type_ensure(workspace->tool.manipulator_group); + const char *idname = workspace->tool.manipulator_group; + wmManipulatorGroupType *wgt = WM_manipulatorgrouptype_find(idname, false); + if (wgt != NULL) { + WM_manipulator_group_type_ensure_ptr(wgt); + } + else { + CLOG_WARN(WM_LOG_TOOLS, "'%s' widget not found", idname); + } } if (workspace->tool.data_block[0]) { |