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
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-03-09 15:48:13 +0300
committerTon Roosendaal <ton@blender.org>2006-03-09 15:48:13 +0300
commit610a813c0c2d4087fe347f8bda55041f863c4c45 (patch)
tree07d87891fab94a3722aeea7876ad1c842c86bd7e /source
parentdd91048c062104e88c52fae76e440c32597f2f10 (diff)
Bugfix... very ancient one even. When you use multiple screens in a project
with each having different scenes, changing screens didn't call the proper set_scene() call, which left quite some stuff improperly initialized. With depsgraph code even causes crashing.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c5
-rw-r--r--source/blender/src/editscreen.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index 9d8857d4119..5b8cd7e5d21 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -1504,6 +1504,11 @@ void DAG_scene_flush_update(Scene *sce, unsigned int lay)
DagAdjList *itA;
int lasttime;
+ if(sce->theDag==NULL) {
+ printf("DAG zero... not allowed to happen!\n");
+ DAG_scene_sort(sce);
+ }
+
firstnode= sce->theDag->DagNode.first; // always scene node
/* first we flush the layer flags */
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c
index 541d353194e..412becf4068 100644
--- a/source/blender/src/editscreen.c
+++ b/source/blender/src/editscreen.c
@@ -75,6 +75,7 @@
#include "BKE_screen.h"
#include "BIF_cursors.h"
+#include "BIF_drawscene.h"
#include "BIF_editsound.h"
#include "BIF_glutil.h"
#include "BIF_gl.h"
@@ -2227,7 +2228,9 @@ void setscreen(bScreen *sc)
sa->cursor= CURSOR_STD;
}
- G.scene= sc->scene;
+ if(G.scene!=sc->scene)
+ set_scene(sc->scene);
+
countall();
G.curscreen->winakt= 0;