Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <campbell@blender.org>2022-03-01 15:11:46 +0300
committerCampbell Barton <campbell@blender.org>2022-03-01 15:11:46 +0300
commit143bc9f8d4baf2a7312f3e836a464f74148c4a3b (patch)
treea7ef0f579a615df31ca02c6f5677feb1eb96e9ea /source/blender/windowmanager
parentf493e2f23a04da77b423dfe0699cae8368bc2062 (diff)
parentd681d82d41c176951eb294a2d1dd413eb2fe8af2 (diff)
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/WM_toolsystem.h1
-rw-r--r--source/blender/windowmanager/intern/wm_toolsystem.c16
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.