diff options
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 8 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_intern.h | 3 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 62082fbb323..97f45ff05bf 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -400,13 +400,13 @@ ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac /* empty screen, with 1 dummy area without spacedata */ /* uses window size */ -bScreen *screen_add(wmWindow *win, char *name) +bScreen *screen_add(wmWindow *win, Scene *scene, char *name) { bScreen *sc; ScrVert *sv1, *sv2, *sv3, *sv4; sc= alloc_libblock(&G.main->screen, ID_SCR, name); - sc->scene= G.scene; + sc->scene= scene; sc->do_refresh= 1; sv1= screen_addvert(sc, 0, 0); @@ -898,7 +898,7 @@ bScreen *ED_screen_duplicate(wmWindow *win, bScreen *sc) if(sc->full != SCREENNORMAL) return NULL; /* XXX handle this case! */ /* make new empty screen: */ - newsc= screen_add(win, sc->id.name+2); + newsc= screen_add(win, sc->scene, sc->id.name+2); /* copy all data */ screen_copy(newsc, sc); /* set in window */ @@ -1264,7 +1264,7 @@ void ed_screen_fullarea(bContext *C) oldscreen->full = SCREENFULL; - sc= screen_add(CTX_wm_window(C), "temp"); + sc= screen_add(CTX_wm_window(C), CTX_data_scene(C), "temp"); /* timer */ sc->animtimer= oldscreen->animtimer; diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h index a4da1e4813f..43a1015562a 100644 --- a/source/blender/editors/screen/screen_intern.h +++ b/source/blender/editors/screen/screen_intern.h @@ -30,13 +30,14 @@ /* internal exports only */ struct wmWindow; +struct Scene; /* area.c */ void area_copy_data (ScrArea *sa1, ScrArea *sa2, int swap_space); void area_newspace(bContext *C, ScrArea *sa, int type); /* screen_edit.c */ -bScreen *screen_add(struct wmWindow *win, char *name); +bScreen *screen_add(struct wmWindow *win, struct Scene *scene, char *name); ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2); ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac); int screen_area_join(bContext *C, bScreen* scr, ScrArea *sa1, ScrArea *sa2); diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 05a038bf236..761ba384c82 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -355,7 +355,7 @@ static int screen_area_rip_op(bContext *C, wmOperator *op) newwin= WM_window_open(C, &rect); /* allocs new screen and adds to newly created window, using window size */ - newsc= screen_add(newwin, sc->id.name+2); + newsc= screen_add(newwin, CTX_data_scene(C), sc->id.name+2); newwin->screen= newsc; /* copy area to new screen */ |