diff options
Diffstat (limited to 'source/blender/blenkernel/intern/screen.c')
-rw-r--r-- | source/blender/blenkernel/intern/screen.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index 063c617e6bb..4232d1f7e52 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -214,6 +214,27 @@ void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2) } } +/* lb1 should be empty */ +void BKE_spacedata_copyfirst(ListBase *lb1, ListBase *lb2) +{ + SpaceLink *sl; + + lb1->first= lb2->last= NULL; /* to be sure */ + + sl= lb2->first; + if(sl) { + SpaceType *st= BKE_spacetype_from_id(sl->spacetype); + + if(st && st->duplicate) { + SpaceLink *slnew= st->duplicate(sl); + + BLI_addtail(lb1, slnew); + + region_copylist(st, &slnew->regionbase, &sl->regionbase); + } + } +} + /* not region itself */ void BKE_area_region_free(SpaceType *st, ARegion *ar) { |