[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15707] trunk/blender/source/blender: == Sequencer ==
Peter Schlaile
peter at schlaile.de
Wed Jul 23 09:11:24 CEST 2008
Revision: 15707
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15707
Author: schlaile
Date: 2008-07-23 09:11:23 +0200 (Wed, 23 Jul 2008)
Log Message:
-----------
== Sequencer ==
Fixes: [#17315] Sequencer: after undo there's no active object
closes: [#17357] fix for bug #17315 - Sequencer: after undo there's no active object
(kiemdoder: thanks for the patch, had to do it in a little bit different way,
since sort_seq will kill your sort order idea...)
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/scene.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/src/editseq.c
Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c 2008-07-23 06:02:18 UTC (rev 15706)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c 2008-07-23 07:11:23 UTC (rev 15707)
@@ -303,7 +303,7 @@
int flag;
// Note: this here is defined in editseq.c (BIF_editseq.h), NOT in blenkernel!
- set_last_seq(NULL);
+ clear_last_seq();
G.scene= sce;
Modified: trunk/blender/source/blender/makesdna/DNA_sequence_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_sequence_types.h 2008-07-23 06:02:18 UTC (rev 15706)
+++ trunk/blender/source/blender/makesdna/DNA_sequence_types.h 2008-07-23 07:11:23 UTC (rev 15707)
@@ -257,6 +257,7 @@
#define SEQ_USE_CROP 131072
#define SEQ_USE_COLOR_BALANCE 262144
#define SEQ_USE_PROXY_CUSTOM_DIR 524288
+#define SEQ_ACTIVE 1048576
#define SEQ_COLOR_BALANCE_INVERSE_GAIN 1
#define SEQ_COLOR_BALANCE_INVERSE_GAMMA 2
Modified: trunk/blender/source/blender/src/editseq.c
===================================================================
--- trunk/blender/source/blender/src/editseq.c 2008-07-23 06:02:18 UTC (rev 15706)
+++ trunk/blender/source/blender/src/editseq.c 2008-07-23 07:11:23 UTC (rev 15707)
@@ -122,14 +122,29 @@
if(!_last_seq_init) {
Editing *ed;
Sequence *seq;
+ Sequence *l_sel = NULL;
+ Sequence *l_act = NULL;
ed= G.scene->ed;
if(!ed) return NULL;
- for(seq= ed->seqbasep->first; seq; seq=seq->next)
+ for(seq= ed->seqbasep->first; seq; seq=seq->next) {
+ if(seq->flag & SEQ_ACTIVE)
+ l_act = seq;
if(seq->flag & SELECT)
- _last_seq= seq;
+ l_sel = seq;
+ }
+ if (l_act) {
+ _last_seq = l_act;
+ } else {
+ _last_seq = l_sel;
+ }
+
+ if (_last_seq) {
+ _last_seq->flag |= SEQ_ACTIVE;
+ }
+
_last_seq_init = 1;
}
@@ -138,12 +153,23 @@
void set_last_seq(Sequence *seq)
{
+ if (_last_seq_init && _last_seq) {
+ _last_seq->flag &= ~SEQ_ACTIVE;
+ }
+
_last_seq = seq;
_last_seq_init = 1;
+
+ if (_last_seq) {
+ _last_seq->flag |= SEQ_ACTIVE;
+ }
}
-void clear_last_seq(Sequence *seq)
+void clear_last_seq()
{
+ if (_last_seq_init && _last_seq) {
+ _last_seq->flag &= ~SEQ_ACTIVE;
+ }
_last_seq = NULL;
_last_seq_init = 0;
}
@@ -2261,6 +2287,8 @@
"handled in duplicate!\nExpect a crash"
" now...\n");
}
+
+ seqn->flag &= ~SEQ_ACTIVE;
return seqn;
}
More information about the Bf-blender-cvs
mailing list