forked from bartvdbraak/blender
fix [#27671] Transforming sequencer effects strips crashes
This commit is contained in:
parent
f227c4a064
commit
216ba20942
@ -3725,27 +3725,8 @@ void flushTransGraphData(TransInfo *t)
|
||||
* seq->depth must be set before running this function so we know if the strips
|
||||
* are root level or not
|
||||
*/
|
||||
#define XXX_DURIAN_ANIM_TX_HACK
|
||||
static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag)
|
||||
{
|
||||
|
||||
#ifdef XXX_DURIAN_ANIM_TX_HACK
|
||||
/* hack */
|
||||
if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) {
|
||||
Sequence *seq_t[3];
|
||||
int i;
|
||||
|
||||
seq_t[0]= seq->seq1;
|
||||
seq_t[1]= seq->seq2;
|
||||
seq_t[2]= seq->seq3;
|
||||
|
||||
for(i=0; i<3; i++) {
|
||||
if (seq_t[i] && ((seq_t[i])->flag & SELECT) && !(seq_t[i]->flag & SEQ_LOCK) && !(seq_t[i]->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)))
|
||||
seq->flag |= SELECT;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* for extend we need to do some tricks */
|
||||
if (t->mode == TFM_TIME_EXTEND) {
|
||||
|
||||
@ -4105,6 +4086,7 @@ static void freeSeqData(TransInfo *t)
|
||||
|
||||
static void createTransSeqData(bContext *C, TransInfo *t)
|
||||
{
|
||||
#define XXX_DURIAN_ANIM_TX_HACK
|
||||
|
||||
View2D *v2d= UI_view2d_fromcontext(C);
|
||||
Scene *scene= t->scene;
|
||||
@ -4135,6 +4117,24 @@ static void createTransSeqData(bContext *C, TransInfo *t)
|
||||
t->frame_side = 'B';
|
||||
}
|
||||
|
||||
#ifdef XXX_DURIAN_ANIM_TX_HACK
|
||||
{
|
||||
Sequence *seq;
|
||||
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
|
||||
/* hack */
|
||||
if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) {
|
||||
Sequence *seq_user;
|
||||
int i;
|
||||
for(i=0; i<3; i++) {
|
||||
seq_user= *((&seq->seq1) + i);
|
||||
if (seq_user && (seq_user->flag & SELECT) && !(seq_user->flag & SEQ_LOCK) && !(seq_user->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL))) {
|
||||
seq->flag |= SELECT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
count = SeqTransCount(t, ed->seqbasep, 0);
|
||||
|
||||
@ -4154,6 +4154,8 @@ static void createTransSeqData(bContext *C, TransInfo *t)
|
||||
|
||||
/* loop 2: build transdata array */
|
||||
SeqToTransData_Recursive(t, ed->seqbasep, td, td2d, tdsq);
|
||||
|
||||
#undef XXX_DURIAN_ANIM_TX_HACK
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user