From 0eab183a66a8faaaed93c9ca35300288d0467493 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 12 Oct 2009 13:37:07 +0000 Subject: Following up on revision 23783 Transform saves back tool settings only when they weren't set as operator argument (and only when running modal). --- source/blender/editors/transform/transform.c | 50 +++++++++++++--------- .../blender/editors/transform/transform_generics.c | 2 +- 2 files changed, 31 insertions(+), 21 deletions(-) (limited to 'source') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index ad89d8a3a59..0b7a672a0b6 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1288,6 +1288,36 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) proportional = 0; } + // If modal, save settings back in scene if not set as operator argument + if (t->flag & T_MODAL) + { + /* save settings if not set in operator */ + if (RNA_struct_find_property(op->ptr, "proportional") && !RNA_property_is_set(op->ptr, "proportional")) + { + ts->proportional = proportional; + } + + if (RNA_struct_find_property(op->ptr, "proportional_size") && !RNA_property_is_set(op->ptr, "proportional_size")) + { + ts->proportional_size = t->prop_size; + } + + if (RNA_struct_find_property(op->ptr, "proportional_editing_falloff") && !RNA_property_is_set(op->ptr, "proportional_editing_falloff")) + { + ts->prop_mode = t->prop_mode; + } + + if(t->spacetype == SPACE_VIEW3D) + { + if (RNA_struct_find_property(op->ptr, "constraint_orientation") && !RNA_property_is_set(op->ptr, "constraint_orientation")) + { + View3D *v3d = t->view; + + v3d->twmode = t->current_orientation; + } + } + } + if (RNA_struct_find_property(op->ptr, "proportional")) { RNA_enum_set(op->ptr, "proportional", proportional); @@ -1319,26 +1349,6 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis); } - - // XXX If modal, save settings back in scene - if (t->flag & T_MODAL) - { - ts->prop_mode = t->prop_mode; - - /* only save back if it wasn't automatically disabled */ - if ((t->options & CTX_NO_PET) == 0) - { - ts->proportional = proportional; - ts->proportional_size = t->prop_size; - } - - if(t->spacetype == SPACE_VIEW3D) - { - View3D *v3d = t->view; - - v3d->twmode = t->current_orientation; - } - } } int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int mode) diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 6637122ffb8..c3ceea1a0c8 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -934,7 +934,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) if(v3d->flag & V3D_ALIGN) t->flag |= T_V3D_ALIGN; t->around = v3d->around; - if (op && RNA_struct_find_property(op->ptr, "constraint_axis") && RNA_property_is_set(op->ptr, "constraint_orientation")) + if (op && RNA_struct_find_property(op->ptr, "constraint_orientation") && RNA_property_is_set(op->ptr, "constraint_orientation")) { t->current_orientation = RNA_enum_get(op->ptr, "constraint_orientation"); -- cgit v1.2.3