diff options
author | Campbell Barton <campbell@blender.org> | 2022-03-01 15:11:46 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-03-01 15:11:46 +0300 |
commit | 143bc9f8d4baf2a7312f3e836a464f74148c4a3b (patch) | |
tree | a7ef0f579a615df31ca02c6f5677feb1eb96e9ea /source/blender/windowmanager | |
parent | f493e2f23a04da77b423dfe0699cae8368bc2062 (diff) | |
parent | d681d82d41c176951eb294a2d1dd413eb2fe8af2 (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_toolsystem.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 16 |
2 files changed, 14 insertions, 3 deletions
diff --git a/source/blender/windowmanager/WM_toolsystem.h b/source/blender/windowmanager/WM_toolsystem.h index 4886e39943f..a9e1495d9bf 100644 --- a/source/blender/windowmanager/WM_toolsystem.h +++ b/source/blender/windowmanager/WM_toolsystem.h @@ -103,6 +103,7 @@ void WM_toolsystem_do_msg_notify_tag_refresh(struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val); +struct IDProperty *WM_toolsystem_ref_properties_get_idprops(struct bToolRef *tref); struct IDProperty *WM_toolsystem_ref_properties_ensure_idprops(struct bToolRef *tref); void WM_toolsystem_ref_properties_ensure_ex(struct bToolRef *tref, const char *idname, diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index 59895292f67..51e4bc9faa8 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -818,6 +818,15 @@ static IDProperty *idprops_ensure_named_group(IDProperty *group, const char *idn return prop; } +IDProperty *WM_toolsystem_ref_properties_get_idprops(bToolRef *tref) +{ + IDProperty *group = tref->properties; + if (group == NULL) { + return NULL; + } + return IDP_GetPropertyFromGroup(group, tref->idname); +} + IDProperty *WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref) { if (tref->properties == NULL) { @@ -832,7 +841,7 @@ bool WM_toolsystem_ref_properties_get_ex(bToolRef *tref, StructRNA *type, PointerRNA *r_ptr) { - IDProperty *group = tref->properties; + IDProperty *group = WM_toolsystem_ref_properties_get_idprops(tref); IDProperty *prop = group ? IDP_GetPropertyFromGroup(group, idname) : NULL; RNA_pointer_create(NULL, type, prop, r_ptr); return (prop != NULL); @@ -861,8 +870,9 @@ void WM_toolsystem_ref_properties_init_for_keymap(bToolRef *tref, IDPropertyTemplate val = {0}; dst_ptr->data = IDP_New(IDP_GROUP, &val, "wmOpItemProp"); } - if (tref->properties != NULL) { - IDProperty *prop = IDP_GetPropertyFromGroup(tref->properties, ot->idname); + IDProperty *group = WM_toolsystem_ref_properties_get_idprops(tref); + if (group != NULL) { + IDProperty *prop = IDP_GetPropertyFromGroup(group, ot->idname); if (prop) { /* Important key-map items properties don't get overwritten by the tools. * - When a key-map item doesn't set a property, the tool-systems is used. |