Fix T54206: bevel and inset operations repeat did not remember offset.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 7 Mar 2018 21:19:56 +0000 (22:19 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 7 Mar 2018 21:53:22 +0000 (22:53 +0100)
Now repeating the operator will use the previously chosen offset, either with
the modal operator or typed in. The modal operator will still start at zero.

source/blender/editors/mesh/editmesh_bevel.c
source/blender/editors/mesh/editmesh_inset.c

index d4d7d92d5ad3bf4e1d0c7059a198e8af10544257..c8d33a9cc60d248f7e61a2d6c093d84283640cb1 100644 (file)
@@ -139,6 +139,10 @@ static bool edbm_bevel_init(bContext *C, wmOperator *op, const bool is_modal)
                return false;
        }
 
+       if (is_modal) {
+               RNA_float_set(op->ptr, "offset", 0.0f);
+       }
+
        op->customdata = opdata = MEM_mallocN(sizeof(BevelData), "beveldata_mesh_operator");
 
        opdata->em = em;
@@ -622,7 +626,6 @@ void MESH_OT_bevel(wmOperatorType *ot)
        RNA_def_enum(ot->srna, "offset_type", offset_type_items, 0, "Amount Type", "What distance Amount measures");
        prop = RNA_def_float(ot->srna, "offset", 0.0f, -1e6f, 1e6f, "Amount", "", 0.0f, 1.0f);
        RNA_def_property_float_array_funcs_runtime(prop, NULL, NULL, mesh_ot_bevel_offset_range_func);
-       RNA_def_property_flag(prop, PROP_SKIP_SAVE);
        RNA_def_int(ot->srna, "segments", 1, 1, SEGMENTS_HARD_MAX, "Segments", "Segments for curved edge", 1, 8);
        RNA_def_float(ot->srna, "profile", 0.5f, PROFILE_HARD_MIN, 1.0f, "Profile",
                "Controls profile shape (0.5 = round)", PROFILE_HARD_MIN, 1.0f);
index 6fd4203e085770e082e2f938525ac5d205b64286..3833b84b5d22e52de355a83b31087bd8549f0702 100644 (file)
@@ -122,6 +122,11 @@ static bool edbm_inset_init(bContext *C, wmOperator *op, const bool is_modal)
                return false;
        }
 
+       if (is_modal) {
+               RNA_float_set(op->ptr, "thickness", 0.01f);
+               RNA_float_set(op->ptr, "depth", 0.0f);
+       }
+
        op->customdata = opdata = MEM_mallocN(sizeof(InsetData), "inset_operator_data");
 
        opdata->old_thickness = 0.01;
@@ -527,11 +532,9 @@ void MESH_OT_inset(wmOperatorType *ot)
        prop = RNA_def_float_distance(ot->srna, "thickness", 0.01f, 0.0f, 1e12f, "Thickness", "", 0.0f, 10.0f);
        /* use 1 rather then 10 for max else dragging the button moves too far */
        RNA_def_property_ui_range(prop, 0.0, 1.0, 0.01, 4);
-       RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 
        prop = RNA_def_float_distance(ot->srna, "depth", 0.0f, -1e12f, 1e12f, "Depth", "", -10.0f, 10.0f);
        RNA_def_property_ui_range(prop, -10.0f, 10.0f, 0.01, 4);
-       RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 
        RNA_def_boolean(ot->srna, "use_outset", false, "Outset", "Outset rather than inset");
        RNA_def_boolean(ot->srna, "use_select_inset", false, "Select Outer", "Select the new inset faces");