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 <ideasman42@gmail.com>2013-06-03 04:46:20 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-03 04:46:20 +0400
commit2a195b78257efdbe4901ec2bdc9fc457b6a28934 (patch)
tree59a3d3cebc8f1dcc87ed266b080f5e9285da3a80 /source/blender/windowmanager
parent3ea4d7ff0136436f691bbe82b3ec4501bd7b3dcc (diff)
fix [#35501] Operator log: some property changes log as [...].(null) = ...
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index bb29ec9000f..423ddfcc568 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -648,7 +648,6 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
char *ret = NULL;
if (ptr->id.data) {
- ID *idptr = ptr->id.data;
#define CTX_TEST_PTR_ID(C, member, idptr) \
{ \
@@ -671,7 +670,16 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
} \
} (void)0
- switch (GS(idptr->name)) {
+#define CTX_TEST_PTR_DATA_TYPE(C, member, rna_type, rna_ptr, dataptr_cmp) \
+ { \
+ const char *ctx_member = member; \
+ if (RNA_struct_is_a((ptr)->type, &(rna_type)) && (ptr)->data == (dataptr_cmp)) { \
+ member_id = ctx_member; \
+ break; \
+ } \
+ } (void)0
+
+ switch (GS(((ID *)ptr->id.data)->name)) {
case ID_SCE:
{
CTX_TEST_PTR_ID(C, "scene", ptr->id.data);
@@ -707,6 +715,11 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
case ID_SCR:
{
CTX_TEST_PTR_ID(C, "screen", ptr->id.data);
+
+ CTX_TEST_PTR_DATA_TYPE(C, "space_data", RNA_Space, ptr, CTX_wm_space_data(C));
+ CTX_TEST_PTR_DATA_TYPE(C, "area", RNA_Area, ptr, CTX_wm_area(C));
+ CTX_TEST_PTR_DATA_TYPE(C, "region", RNA_Region, ptr, CTX_wm_region(C));
+
break;
}
}