diff options
author | Campbell Barton <campbell@blender.org> | 2022-05-06 10:44:32 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-05-06 10:44:32 +0300 |
commit | 62450e8485ded339889e292e41453398dad5adcc (patch) | |
tree | 1e4cf5a01362a2d15e397ebbe559c2b7be273c8d | |
parent | 693aa573db4068f5c8c30f0958cb8850c806a285 (diff) |
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.
-rw-r--r-- | source/blender/windowmanager/WM_toolsystem.h | 5 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 3 |
2 files changed, 7 insertions, 1 deletions
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); } |