diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-22 21:27:37 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-22 21:27:37 +0400 |
commit | 665f784b0670a2008f783a3351b60dddf1edc72d (patch) | |
tree | 8fe3968634235340e506e955824a4b3ab750bbac /source | |
parent | a4ffb69e3aaf53068c9ecd059a8ea4ed2fa39c48 (diff) |
Correction recent start/end range values for frames: it was impossible to set
start frame = end frame which is useful in some cases.
Also made behavior of S/E operators equal to sliders in timeline.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/space_time/time_ops.c | 25 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_armature.c | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 4 |
3 files changed, 19 insertions, 14 deletions
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c index ef0356d648e..45267563243 100644 --- a/source/blender/editors/space_time/time_ops.c +++ b/source/blender/editors/space_time/time_ops.c @@ -56,17 +56,20 @@ static int time_set_sfra_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; frame= CFRA; - /* if 'end frame' (Preview Range or Actual) is less than 'frame', - * clamp 'frame' to 'end frame' - */ - if (PEFRA < frame) frame= PEFRA; - + /* if Preview Range is defined, set the 'start' frame for that */ if (PRVRANGEON) scene->r.psfra= frame; else scene->r.sfra= frame; + if (PEFRA < frame) { + if (PRVRANGEON) + scene->r.pefra= frame; + else + scene->r.efra= frame; + } + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); return OPERATOR_FINISHED; @@ -98,16 +101,18 @@ static int time_set_efra_exec (bContext *C, wmOperator *UNUSED(op)) frame= CFRA; - /* if 'start frame' (Preview Range or Actual) is greater than 'frame', - * clamp 'frame' to 'end frame' - */ - if (PSFRA > frame) frame= PSFRA; - /* if Preview Range is defined, set the 'end' frame for that */ if (PRVRANGEON) scene->r.pefra= frame; else scene->r.efra= frame; + + if (PSFRA > frame) { + if (PRVRANGEON) + scene->r.psfra= frame; + else + scene->r.sfra= frame; + } WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index f6763b4dcde..208d69f82b8 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -238,7 +238,7 @@ static void rna_Armature_ghost_start_frame_set(PointerRNA *ptr, int value) data->ghostsf = value; if (data->ghostsf >= data->ghostef) { - data->ghostef = MIN2(data->ghostsf + 1, (int)(MAXFRAMEF/2)); + data->ghostef = MIN2(data->ghostsf, (int)(MAXFRAMEF/2)); } } @@ -249,7 +249,7 @@ static void rna_Armature_ghost_end_frame_set(PointerRNA *ptr, int value) data->ghostef = value; if (data->ghostsf >= data->ghostef) { - data->ghostsf = MAX2(data->ghostef - 1, 1); + data->ghostsf = MAX2(data->ghostef, 1); } } /* XXX depreceated... old armature only animviz */ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 76c128c5bc3..270c665f809 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -487,7 +487,7 @@ static void rna_Scene_start_frame_set(PointerRNA *ptr, int value) data->r.sfra = value; if (data->r.sfra >= data->r.efra) { - data->r.efra = MIN2(data->r.sfra + 1, MAXFRAME); + data->r.efra = MIN2(data->r.sfra, MAXFRAME); } } @@ -498,7 +498,7 @@ static void rna_Scene_end_frame_set(PointerRNA *ptr, int value) data->r.efra = value; if (data->r.sfra >= data->r.efra) { - data->r.sfra = MAX2(data->r.efra - 1, MINFRAME); + data->r.sfra = MAX2(data->r.efra, MINFRAME); } } |