diff options
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_key.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c index 3b9fc970072..a48727526c9 100644 --- a/source/blender/makesrna/intern/rna_key.c +++ b/source/blender/makesrna/intern/rna_key.c @@ -699,6 +699,16 @@ static void rna_Key_update_data(Main *bmain, Scene *UNUSED(scene), PointerRNA *p } } +static void rna_ShapeKey_update_minmax(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + KeyBlock *data = (KeyBlock *)ptr->data; + if (IN_RANGE_INCL(data->curval, data->slidermin, data->slidermax)) { + return; + } + CLAMP(data->curval, data->slidermin, data->slidermax); + rna_Key_update_data(bmain, scene, ptr); +} + static KeyBlock *rna_ShapeKeyData_find_keyblock(Key *key, float *point) { KeyBlock *kb; @@ -955,6 +965,7 @@ static void rna_def_keyblock(BlenderRNA *brna) RNA_def_property_float_funcs( prop, NULL, "rna_ShapeKey_slider_min_set", "rna_ShapeKey_slider_min_range"); RNA_def_property_ui_text(prop, "Slider Min", "Minimum for slider"); + RNA_def_property_update(prop, 0, "rna_ShapeKey_update_minmax"); prop = RNA_def_property(srna, "slider_max", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "slidermax"); @@ -963,6 +974,7 @@ static void rna_def_keyblock(BlenderRNA *brna) RNA_def_property_float_funcs( prop, NULL, "rna_ShapeKey_slider_max_set", "rna_ShapeKey_slider_max_range"); RNA_def_property_ui_text(prop, "Slider Max", "Maximum for slider"); + RNA_def_property_update(prop, 0, "rna_ShapeKey_update_minmax"); prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "data", "totelem"); |