From 62450e8485ded339889e292e41453398dad5adcc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 6 May 2022 17:44:32 +1000 Subject: WM: suppress assertion when switching tools Changing the object mode outside the 3D view would trigger this assertion. This was harmless, only assert for space types that define the tools mode. --- source/blender/windowmanager/WM_toolsystem.h | 5 +++++ source/blender/windowmanager/intern/wm_toolsystem.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/windowmanager/WM_toolsystem.h b/source/blender/windowmanager/WM_toolsystem.h index a9e1495d9bf..96094e9e7ef 100644 --- a/source/blender/windowmanager/WM_toolsystem.h +++ b/source/blender/windowmanager/WM_toolsystem.h @@ -28,6 +28,11 @@ struct wmOperatorType; #define WM_TOOLSYSTEM_SPACE_MASK \ ((1 << SPACE_IMAGE) | (1 << SPACE_NODE) | (1 << SPACE_VIEW3D) | (1 << SPACE_SEQ)) +/** + * Space-types that define their own "mode" (as returned by #WM_toolsystem_mode_from_spacetype). + */ +#define WM_TOOLSYSTEM_SPACE_MASK_MODE_FROM_SPACE ((1 << SPACE_IMAGE) | (1 << SPACE_SEQ)) + /* Values that define a category of active tool. */ typedef struct bToolKey { int space_type; diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index 8c7cf86d050..984a8ef41d0 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -636,7 +636,8 @@ bToolRef *WM_toolsystem_ref_set_by_id_ex( /* Some contexts use the current space type (image editor for e.g.), * ensure this is set correctly or there is no area. */ #ifndef NDEBUG - { + /* Exclude this check for some space types where the space type isn't used. */ + if ((1 << tkey->space_type) & WM_TOOLSYSTEM_SPACE_MASK_MODE_FROM_SPACE) { ScrArea *area = CTX_wm_area(C); BLI_assert(area == NULL || area->spacetype == tkey->space_type); } -- cgit v1.2.3