diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-06-03 04:46:20 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-06-03 04:46:20 +0400 |
commit | 2a195b78257efdbe4901ec2bdc9fc457b6a28934 (patch) | |
tree | 59a3d3cebc8f1dcc87ed266b080f5e9285da3a80 /source/blender/windowmanager | |
parent | 3ea4d7ff0136436f691bbe82b3ec4501bd7b3dcc (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.c | 17 |
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; } } |