Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-03-22 21:27:37 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-03-22 21:27:37 +0400
commit665f784b0670a2008f783a3351b60dddf1edc72d (patch)
tree8fe3968634235340e506e955824a4b3ab750bbac
parenta4ffb69e3aaf53068c9ecd059a8ea4ed2fa39c48 (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.
-rw-r--r--source/blender/editors/space_time/time_ops.c25
-rw-r--r--source/blender/makesrna/intern/rna_armature.c4
-rw-r--r--source/blender/makesrna/intern/rna_scene.c4
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);
}
}