diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-12-12 17:28:35 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-12-12 17:35:12 +0400 |
commit | 2195dd32cc7b2f4bf26c7d216cbaba32f82184da (patch) | |
tree | 254311c95553d563bcc78f031cd384c0fba69d74 /source/blender/windowmanager/intern/wm.c | |
parent | 8a7f2b24c1aa3a76637a1ae3b01a2f074755803c (diff) |
Fix T37595: Switching modal transform broke with trackball rotation.
Id properties may have different sized "values" array depending on the
transform operator
Diffstat (limited to 'source/blender/windowmanager/intern/wm.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 74c066d1d86..71d6d25c9a0 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -121,6 +121,21 @@ void WM_operator_type_set(wmOperator *op, wmOperatorType *ot) op->type = ot; op->ptr->type = ot->srna; + + /* ensure compatible properties */ + if (op->properties) { + PointerRNA ptr; + + WM_operator_properties_create_ptr(&ptr, ot); + + WM_operator_properties_default(&ptr, false); + + if (ptr.data) { + IDP_SyncGroupTypes(op->properties, ptr.data, true); + } + + WM_operator_properties_free(&ptr); + } } static void wm_reports_free(wmWindowManager *wm) |