[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