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:
authorPeter Schlaile <peter@schlaile.de>2013-02-18 02:13:00 +0400
committerPeter Schlaile <peter@schlaile.de>2013-02-18 02:13:00 +0400
commit42a81550f9b1ab4af7945580922c897425becf7f (patch)
treeb2bf2c87d8497c9ea872b0c2d9891de6c0c1bcae /source/blender/editors/space_sequencer
parentaefa6261c324b8117c25041c285b6cb1eaab31f8 (diff)
== Sequencer ==
Made my last fix a little bit faster and more elegant by not playing around with seq->tmp (only reseting it to NULL, like the old code).
Diffstat (limited to 'source/blender/editors/space_sequencer')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index cec9373ebd7..ab7a2f38744 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -827,18 +827,14 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
Sequence * (*cut_seq)(Scene *, Sequence *, int))
{
- int did_something = FALSE;
Sequence *seq, *seq_next_iter;
-
- for (seq = slist->first; seq; seq = seq->next) {
- seq->tmp = NULL;
- }
+ Sequence *seq_first_new = NULL;
seq = slist->first;
- while (seq && !seq->tmp) {
+ while (seq && seq != seq_first_new) {
seq_next_iter = seq->next; /* we need this because we may remove seq */
- /* only handle strips not marked as new */
+ seq->tmp = NULL;
if (seq->flag & SELECT) {
if (cutframe > seq->startdisp &&
cutframe < seq->enddisp)
@@ -846,28 +842,24 @@ static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
Sequence *seqn = cut_seq(scene, seq, cutframe);
if (seqn) {
BLI_addtail(slist, seqn);
- seqn->tmp = seq; /* mark as new */
- did_something = TRUE;
+ seq_first_new = seq_first_new ?: seqn;
}
}
else if (seq->enddisp <= cutframe) {
/* do nothing */
}
else if (seq->startdisp >= cutframe) {
- /* move to tail and mark as new */
+ /* move to tail */
BLI_remlink(slist, seq);
BLI_addtail(slist, seq);
- seq->tmp = seq;
+
+ seq_first_new = seq_first_new ?: seq;
}
}
seq = seq_next_iter;
}
- for (; seq; seq = seq->next) {
- seq->tmp = NULL;
- }
-
- return did_something;
+ return (seq_first_new != NULL);
}
static int insert_gap(Scene *scene, int gap, int cfra)