/* lb1 should be empty */ void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2) { SpaceLink *sl; BLI_listbase_clear(lb1); /* to be sure */ for (sl = lb2->first; sl; sl = sl->next) { 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); } } }