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
diff options
context:
space:
mode:
-rw-r--r--source/Makefile2
-rw-r--r--source/blender/blenkernel/intern/screen.c5
-rw-r--r--source/blender/blenloader/intern/readfile.c151
-rw-r--r--source/blender/editors/include/ED_screen.h1
-rw-r--r--source/blender/editors/interface/interface_icons.c25
-rw-r--r--source/blender/editors/screen/screen_edit.c2
-rw-r--r--source/blender/editors/screen/space.c54
-rw-r--r--source/blender/editors/space_time/space_time.c35
-rw-r--r--source/blender/editors/space_time/time_header.c6
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c42
-rw-r--r--source/blender/makesdna/DNA_action_types.h1
-rw-r--r--source/blender/makesdna/DNA_sound_types.h1
-rw-r--r--source/blender/makesdna/DNA_space_types.h14
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h1
14 files changed, 240 insertions, 100 deletions
diff --git a/source/Makefile b/source/Makefile
index 73e97ff58fd..b975d9bae32 100644
--- a/source/Makefile
+++ b/source/Makefile
@@ -230,6 +230,7 @@ ifeq ($(WITH_OPENEXR), true)
COMLIB += $(NAN_OPENEXR_LIBS)
endif
+# silly: libed_screen.a twice :(
PULIB = $(NAN_MOTO)/lib/libmoto.a
PULIB += $(NAN_ELBEEM)/lib/$(DEBUG_DIR)libelbeem.a
PULIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
@@ -241,6 +242,7 @@ PULIB += $(OCGDIR)/blender/ed_interface/libed_interface.a
PULIB += $(OCGDIR)/blender/ed_util/libed_util.a
PULIB += $(OCGDIR)/blender/ed_datafiles/libed_datafiles.a
PULIB += $(OCGDIR)/blender/windowmanager/libwindowmanager.a
+PULIB += $(OCGDIR)/blender/ed_screen/libed_screen.a
PULIB += $(OCGDIR)/blender/python/$(DEBUG_DIR)libpython.a
PULIB += $(OCGDIR)/blender/makesrna/$(DEBUG_DIR)librna.a
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 8332e7baea1..af5134cd6a0 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -101,12 +101,17 @@ void BKE_spacetype_register(SpaceType *st)
void BKE_spacedata_freelist(ListBase *lb)
{
SpaceLink *sl;
+ ARegion *ar;
for (sl= lb->first; sl; sl= sl->next) {
SpaceType *st= BKE_spacetype_from_id(sl->spacetype);
if(st && st->free)
st->free(sl);
+ /* regions for pushed spaces */
+ for(ar=sl->regionbase.first; ar; ar=ar->next)
+ BKE_area_region_free(ar);
+ BLI_freelistN(&sl->regionbase);
}
BLI_freelistN(lb);
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index b49ebe3a775..5ac8cabf85c 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5038,64 +5038,64 @@ static void alphasort_version_246(FileData *fd, Library *lib, Mesh *me)
}
}
-static void do_versions_windowmanager_2_50(bScreen *screen)
+/* 2.50 patch */
+static void area_add_header_region(ScrArea *sa, ListBase *lb)
{
- struct ScrArea *sa;
- struct ARegion *ar;
+ ARegion *ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- /* add regions */
- for(sa= screen->areabase.first; sa; sa= sa->next) {
- /* we keep headertype variable to convert old files only */
- if(sa->headertype) {
- ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- BLI_addtail(&sa->regionbase, ar);
- ar->regiontype= RGN_TYPE_HEADER;
- if(sa->headertype==1)
- ar->alignment= RGN_ALIGN_BOTTOM;
- else
- ar->alignment= RGN_ALIGN_TOP;
-
- /* initialise view2d data for header region, to allow panning */
- ar->v2d.keepaspect= 1;
- ar->v2d.keepzoom = (V2D_LOCKZOOM_X|V2D_LOCKZOOM_Y|V2D_KEEPZOOM);
- ar->v2d.keepofs = V2D_LOCKOFS_Y;
- ar->v2d.keeptot = 2; // this keeps the view in place when region size changes...
- ar->v2d.align = V2D_ALIGN_NO_NEG_X;
-
- ar->v2d.minzoom= ar->v2d.maxzoom= 1.0f;
-
- ar->v2d.mask.xmin= ar->v2d.mask.ymin= 0;
- ar->v2d.mask.xmax= sa->winx;
- ar->v2d.mask.ymax= HEADERY;
-
- ar->v2d.cur.xmin= sa->headbutofs;
- ar->v2d.cur.xmax= sa->winx + sa->headbutofs;
- ar->v2d.tot.xmin= 0.0f;
- ar->v2d.tot.xmax= sa->headbutlen;
-
- if (ar->alignment == RGN_ALIGN_BOTTOM) {
- ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
- ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
- ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
- }
- else {
- // XXX what were the extents of the old headers?
- ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
- ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
- ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
- }
- }
-
- ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- BLI_addtail(&sa->regionbase, ar);
- ar->winrct= sa->totrct;
- ar->regiontype= RGN_TYPE_WINDOW;
-
+ BLI_addtail(lb, ar);
+ ar->regiontype= RGN_TYPE_HEADER;
+ if(sa->headertype==1)
+ ar->alignment= RGN_ALIGN_BOTTOM;
+ else
+ ar->alignment= RGN_ALIGN_TOP;
+
+ /* initialise view2d data for header region, to allow panning */
+ ar->v2d.keepaspect= 1;
+ ar->v2d.keepzoom = (V2D_LOCKZOOM_X|V2D_LOCKZOOM_Y|V2D_KEEPZOOM);
+ ar->v2d.keepofs = V2D_LOCKOFS_Y;
+ ar->v2d.keeptot = 2; // this keeps the view in place when region size changes...
+ ar->v2d.align = V2D_ALIGN_NO_NEG_X;
+
+ ar->v2d.minzoom= ar->v2d.maxzoom= 1.0f;
+
+ ar->v2d.mask.xmin= ar->v2d.mask.ymin= 0;
+ ar->v2d.mask.xmax= sa->winx;
+ ar->v2d.mask.ymax= HEADERY;
+
+ ar->v2d.cur.xmin= sa->headbutofs;
+ ar->v2d.cur.xmax= sa->winx + sa->headbutofs;
+ ar->v2d.tot.xmin= 0.0f;
+ ar->v2d.tot.xmax= sa->headbutlen;
+
+ if (ar->alignment == RGN_ALIGN_BOTTOM) {
+ ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
+ ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
+ ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
+ }
+ else {
+ // XXX what were the extents of the old headers?
+ ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
+ ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
+ ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
+ }
+}
+
+/* 2.50 patch */
+static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
+{
+ ARegion *ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
+
+ BLI_addtail(lb, ar);
+ ar->winrct= sa->totrct;
+ ar->regiontype= RGN_TYPE_WINDOW;
+
+ if(sl) {
/* if active spacetype has view2d data, copy that over to main region */
- switch(sa->spacetype) {
+ switch(sl->spacetype) {
case SPACE_OOPS:
{
- SpaceOops *soops= sa->spacedata.first;
+ SpaceOops *soops= (SpaceOops *)sl;
memcpy(&ar->v2d, &soops->v2d, sizeof(View2D));
@@ -5107,7 +5107,7 @@ static void do_versions_windowmanager_2_50(bScreen *screen)
break;
case SPACE_TIME:
{
- SpaceTime *stime= sa->spacedata.first;
+ SpaceTime *stime= (SpaceTime *)sl;
memcpy(&ar->v2d, &stime->v2d, sizeof(View2D));
ar->v2d.scroll |= (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_BOTTOM);
@@ -5115,9 +5115,45 @@ static void do_versions_windowmanager_2_50(bScreen *screen)
ar->v2d.keepofs |= V2D_LOCKOFS_Y;
}
break;
- //case SPACE_XXX: // FIXME... add other ones
- // memcpy(&ar->v2d, &((SpaceXxx *)sa->spacedata.first)->v2d, sizeof(View2D));
- // break;
+ //case SPACE_XXX: // FIXME... add other ones
+ // memcpy(&ar->v2d, &((SpaceXxx *)sl)->v2d, sizeof(View2D));
+ // break;
+ }
+ /* further subdivision case, channels for ipo action nla... */
+ switch(sl->spacetype) {
+ case SPACE_IPO:
+ break;
+ case SPACE_ACTION:
+ break;
+ case SPACE_NLA:
+ break;
+ }
+ }
+}
+
+static void do_versions_windowmanager_2_50(bScreen *screen)
+{
+ ScrArea *sa;
+ ARegion *ar;
+ SpaceLink *sl;
+
+ /* add regions */
+ for(sa= screen->areabase.first; sa; sa= sa->next) {
+
+ /* we keep headertype variable to convert old files only */
+ if(sa->headertype)
+ area_add_header_region(sa, &sa->regionbase);
+
+ area_add_window_regions(sa, sa->spacedata.first, &sa->regionbase);
+
+ /* pushed back spaces also need regions! */
+ if(sa->spacedata.first) {
+ sl= sa->spacedata.first;
+ for(sl= sl->next; sl; sl= sl->next) {
+ if(sa->headertype)
+ area_add_header_region(sa, &sl->regionbase);
+ area_add_window_regions(sa, sl, &sl->regionbase);
+ }
}
}
}
@@ -8157,6 +8193,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
do_versions_windowmanager_2_50(screen);
}
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h
index 0a3772f2853..dd6137aa46c 100644
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@ -51,6 +51,7 @@ ARegion *ED_region_copy(ARegion *ar);
void ED_spacetypes_init(void);
void ED_spacetypes_keymap(struct wmWindowManager *wm);
struct ARegionType *ED_regiontype_from_id(struct SpaceType *st, int regionid);
+void ED_newspace(struct ScrArea *sa, int type);
/* areas */
void ED_area_initialize(struct wmWindowManager *wm, struct wmWindow *win, struct ScrArea *sa);
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 54cfeaecfee..2b22e47b5bf 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -98,8 +98,6 @@ typedef struct DrawInfo {
static struct ListBase iconfilelist = {0, 0};
-static int preview_render_size(int miplevel);
-
/* **************************************************** */
static void def_internal_icon(ImBuf *bbuf, int icon_id, int xofs, int yofs)
@@ -684,6 +682,7 @@ void UI_icons_init(int first_dyn_id)
init_internal_icons();
}
+#if 0
static void icon_copy_rect(ImBuf *ibuf, unsigned int w, unsigned int h, unsigned int *rect)
{
struct ImBuf *ima;
@@ -734,6 +733,16 @@ static void icon_copy_rect(ImBuf *ibuf, unsigned int w, unsigned int h, unsigned
IMB_freeImBuf(ima);
}
+/* Render size for preview images at level miplevel */
+static int preview_render_size(int miplevel)
+{
+ switch (miplevel) {
+ case 0: return 32;
+ case 1: return PREVIEW_DEFAULT_HEIGHT;
+ }
+ return 0;
+}
+
static void icon_create_mipmap(struct PreviewImage* prv_img, int miplevel)
{
unsigned int size = preview_render_size(miplevel);
@@ -794,6 +803,7 @@ static void set_alpha(char* cp, int sizex, int sizey, char alpha)
}
}
}
+#endif
/* only called when icon has changed */
/* only call with valid pointer from UI_icon_draw */
@@ -881,16 +891,6 @@ static void icon_draw_rect(float x, float y, int w, int h, float aspect, int rw,
glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, rect);
}
-/* Render size for preview images at level miplevel */
-static int preview_render_size(int miplevel)
-{
- switch (miplevel) {
- case 0: return 32;
- case 1: return PREVIEW_DEFAULT_HEIGHT;
- }
- return 0;
-}
-
/* Drawing size for preview images at level miplevel */
static int preview_size(int miplevel)
{
@@ -977,7 +977,6 @@ void UI_icon_draw_preview(float x, float y, int icon_id, int nocreate)
void UI_icon_draw_aspect_blended(float x, float y, int icon_id, float aspect, int shade)
{
-
if(shade < 0) {
float r= (128+shade)/128.0f;
glPixelTransferf(GL_ALPHA_SCALE, r);
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 2039db7ab6e..de2e0d37f8c 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -246,7 +246,7 @@ static ScrArea *screen_addarea(bScreen *sc, ScrVert *v1, ScrVert *v2, ScrVert *v
sa->v3= v3;
sa->v4= v4;
sa->headertype= headertype;
- sa->spacetype= spacetype;
+ sa->spacetype= sa->butspacetype= spacetype;
BLI_addtail(&sc->areabase, sa);
diff --git a/source/blender/editors/screen/space.c b/source/blender/editors/screen/space.c
index 85e41c1c1c2..e9287c9976f 100644
--- a/source/blender/editors/screen/space.c
+++ b/source/blender/editors/screen/space.c
@@ -38,7 +38,7 @@
#include "BLI_arithb.h"
#include "BKE_global.h"
-#include "BKE_colortools.h"
+#include "BKE_screen.h"
#include "BLO_readfile.h"
@@ -47,4 +47,56 @@
#include "ED_area.h"
#include "ED_screen.h"
+/* */
+
+void ED_newspace(ScrArea *sa, int type)
+{
+ if(sa->spacetype != type) {
+ SpaceType *st= BKE_spacetype_from_id(type);
+ SpaceLink *slold= sa->spacedata.first;
+ SpaceLink *sl;
+
+ sa->spacetype= type;
+ sa->butspacetype= type;
+
+ /* check previously stored space */
+ for (sl= sa->spacedata.first; sl; sl= sl->next)
+ if(sl->spacetype==type)
+ break;
+
+ /* old spacedata... happened during work on 2.50, remove */
+ if(sl && sl->regionbase.first==NULL) {
+ st->free(sl);
+ MEM_freeN(sl);
+ sl= NULL;
+ }
+
+ if (sl) {
+
+ /* swap regions */
+ slold->regionbase= sa->regionbase;
+ sa->regionbase= sl->regionbase;
+ sl->regionbase.first= sl->regionbase.last= NULL;
+
+ /* put in front of list */
+ BLI_remlink(&sa->spacedata, sl);
+ BLI_addhead(&sa->spacedata, sl);
+ }
+ else {
+ /* new space */
+ if(st) {
+ sl= st->new();
+ BLI_addhead(&sa->spacedata, sl);
+
+ /* swap regions */
+ slold->regionbase= sa->regionbase;
+ sa->regionbase= sl->regionbase;
+ sl->regionbase.first= sl->regionbase.last= NULL;
+ }
+ }
+ }
+
+}
+
+
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index de7573892aa..3aba13104c6 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -202,19 +202,31 @@ static void time_header_area_free(ARegion *ar)
static SpaceLink *time_new(void)
{
+ ARegion *ar;
SpaceTime *stime;
stime= MEM_callocN(sizeof(SpaceTime), "inittime");
stime->spacetype= SPACE_TIME;
- stime->blockscale= 0.7;
stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
+ stime->flag |= TIME_DRAWFRAMES;
- // XXX move to region!
- stime->v2d.tot.xmin= -4.0;
- stime->v2d.tot.ymin= 0.0;
- stime->v2d.tot.xmax= (float)EFRA + 4.0;
- //stime->v2d.tot.ymax= (float)stime->winy;
+ /* header */
+ ar= MEM_callocN(sizeof(ARegion), "header for time");
+
+ BLI_addtail(&stime->regionbase, ar);
+ ar->regiontype= RGN_TYPE_HEADER;
+
+ /* main area */
+ ar= MEM_callocN(sizeof(ARegion), "main area for time");
+
+ BLI_addtail(&stime->regionbase, ar);
+ ar->regiontype= RGN_TYPE_WINDOW;
+
+ ar->v2d.tot.xmin= -4.0;
+ ar->v2d.tot.ymin= 0.0;
+ ar->v2d.tot.xmax= (float)EFRA + 4.0;
+ ar->v2d.tot.ymax= 10;
stime->v2d.cur= stime->v2d.tot;
@@ -227,12 +239,9 @@ static SpaceLink *time_new(void)
stime->v2d.minzoom= 0.1f;
stime->v2d.maxzoom= 10.0;
- stime->v2d.scroll= 0;
- stime->v2d.keepaspect= 0;
- stime->v2d.keepzoom= 0;
- stime->v2d.keeptot= 0;
-
- stime->flag |= TIME_DRAWFRAMES;
+ ar->v2d.scroll |= (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_BOTTOM);
+ ar->v2d.align |= V2D_ALIGN_NO_NEG_Y;
+ ar->v2d.keepofs |= V2D_LOCKOFS_Y;
return (SpaceLink*)stime;
}
@@ -248,7 +257,7 @@ static void time_free(SpaceLink *sl)
/* validate spacedata, add own area level handlers */
static void time_init(wmWindowManager *wm, ScrArea *sa)
{
-
+
}
static SpaceLink *time_duplicate(SpaceLink *sl)
diff --git a/source/blender/editors/space_time/time_header.c b/source/blender/editors/space_time/time_header.c
index 913946ad376..308e49377ad 100644
--- a/source/blender/editors/space_time/time_header.c
+++ b/source/blender/editors/space_time/time_header.c
@@ -372,8 +372,8 @@ static void end_animated_screen(SpaceTime *stime)
#define B_TL_PREVIEWON 757
#define B_TL_INSERTKEY 758
#define B_TL_DELETEKEY 759
+#define B_NEWSPACE 760
-#define B_NEWSPACE 0
#define B_FLIPINFOMENU 0
#define B_NEWFRAME 0
#define AUTOKEY_ON 0
@@ -385,6 +385,10 @@ void do_time_buttons(bContext *C, void *arg, int event)
SpaceTime *stime= C->area->spacedata.first;
switch(event) {
+ case B_NEWSPACE:
+ ED_newspace(C->area, C->area->butspacetype);
+ WM_event_add_notifier(C, WM_NOTE_SCREEN_CHANGED, 0, NULL);
+ break;
case B_REDRAWALL:
WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL);
break;
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 03a30e96e57..84e72b09cad 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -55,31 +55,23 @@
static SpaceLink *view3d_new(void)
{
+ ARegion *ar;
View3D *vd;
vd= MEM_callocN(sizeof(View3D), "initview3d");
-
vd->spacetype= SPACE_VIEW3D;
vd->blockscale= 0.7f;
- vd->viewquat[0]= 1.0f;
- vd->viewquat[1]= vd->viewquat[2]= vd->viewquat[3]= 0.0f;
- vd->persp= 1;
- vd->drawtype= OB_WIRE;
- vd->view= 7;
- vd->dist= 10.0;
- vd->lens= 35.0f;
- vd->near= 0.01f;
- vd->far= 500.0f;
- vd->grid= 1.0f;
- vd->gridlines= 16;
- vd->gridsubdiv = 10;
-
vd->lay= vd->layact= 1;
if(G.scene) {
vd->lay= vd->layact= G.scene->lay;
vd->camera= G.scene->camera;
}
vd->scenelock= 1;
+ vd->grid= 1.0f;
+ vd->gridlines= 16;
+ vd->gridsubdiv = 10;
+ vd->drawtype= OB_WIRE;
+
vd->gridflag |= V3D_SHOW_X;
vd->gridflag |= V3D_SHOW_Y;
vd->gridflag |= V3D_SHOW_FLOOR;
@@ -87,6 +79,28 @@ static SpaceLink *view3d_new(void)
vd->depths= NULL;
+ /* XXX move view data to region? */
+ vd->viewquat[0]= 1.0f;
+ vd->viewquat[1]= vd->viewquat[2]= vd->viewquat[3]= 0.0f;
+ vd->persp= 1;
+ vd->view= 7;
+ vd->dist= 10.0;
+ vd->lens= 35.0f;
+ vd->near= 0.01f;
+ vd->far= 500.0f;
+
+ /* header */
+ ar= MEM_callocN(sizeof(ARegion), "header for view3d");
+
+ BLI_addtail(&vd->regionbase, ar);
+ ar->regiontype= RGN_TYPE_HEADER;
+
+ /* main area */
+ ar= MEM_callocN(sizeof(ARegion), "main area for view3d");
+
+ BLI_addtail(&vd->regionbase, ar);
+ ar->regiontype= RGN_TYPE_WINDOW;
+
return (SpaceLink *)vd;
}
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index 4a10ecf2368..73a20512470 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -175,6 +175,7 @@ typedef struct bAction {
/* Action Editor Space. This is defined here instead of in DNA_space_types.h */
typedef struct SpaceAction {
struct SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
struct ScrArea *area;
diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h
index d05e6f1bae8..5dedd20e1e4 100644
--- a/source/blender/makesdna/DNA_sound_types.h
+++ b/source/blender/makesdna/DNA_sound_types.h
@@ -132,6 +132,7 @@ typedef struct bSoundListener {
typedef struct SpaceSound {
struct SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
struct ScrArea *area;
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index d2bb480b109..3d8047c6100 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -60,6 +60,7 @@ struct bGPdata;
typedef struct SpaceLink {
struct SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale; /* XXX depricate this */
short blockhandler[8]; /* XXX depricate this */
@@ -67,6 +68,7 @@ typedef struct SpaceLink {
typedef struct SpaceInfo {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -75,6 +77,7 @@ typedef struct SpaceInfo {
typedef struct SpaceIpo {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -102,6 +105,7 @@ typedef struct SpaceIpo {
typedef struct SpaceButs {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
struct RenderInfo *ri;
@@ -133,6 +137,7 @@ typedef struct SpaceButs {
typedef struct SpaceSeq {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -152,6 +157,7 @@ typedef struct SpaceSeq {
typedef struct SpaceFile {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -186,6 +192,7 @@ typedef struct SpaceFile {
typedef struct SpaceOops {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -215,6 +222,7 @@ typedef struct SpaceOops {
typedef struct SpaceImage {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -247,6 +255,7 @@ typedef struct SpaceImage {
typedef struct SpaceNla {
struct SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -261,6 +270,7 @@ typedef struct SpaceNla {
typedef struct SpaceText {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -308,6 +318,7 @@ typedef struct Script {
typedef struct SpaceScript {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
struct Script *script;
@@ -320,6 +331,7 @@ typedef struct SpaceScript {
typedef struct SpaceTime {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -331,6 +343,7 @@ typedef struct SpaceTime {
typedef struct SpaceNode {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
@@ -358,6 +371,7 @@ typedef struct SpaceNode {
typedef struct SpaceImaSel {
SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index f1fa8c19199..d281c1e5213 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -72,6 +72,7 @@ typedef struct BGpic {
/* 3D ViewPort Struct */
typedef struct View3D {
struct SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
int spacetype;
float blockscale;