Following up on revision 23783
authorMartin Poirier <theeth@yahoo.com>
Mon, 12 Oct 2009 13:37:07 +0000 (13:37 +0000)
committerMartin Poirier <theeth@yahoo.com>
Mon, 12 Oct 2009 13:37:07 +0000 (13:37 +0000)
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
source/blender/editors/transform/transform_generics.c

index ad89d8a3a5905d5f229b5fd0fc954b08fec0fcf3..0b7a672a0b6110741c30b8e38240e40ee05a4d1c 100644 (file)
@@ -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)
index 6637122ffb82c6d0030940248afd85a3599c65f8..c3ceea1a0c8311dc7a0676a70bae17576b79ef40 100644 (file)
@@ -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");