forked from bartvdbraak/blender
DO not increment image user counter on view3d duplicate and not decrement
it's user count on free. That's how other spaces handles ID block (like image editor, space clip). This fixes issue when loading file without loading UI when current layout has got background images set. Also this hopefully will fix issue #30429: Background Images Lost on Save/Close/Reload
This commit is contained in:
parent
0c68f0eee8
commit
de4bd55e01
@ -333,10 +333,6 @@ static void view3d_free(SpaceLink *sl)
|
|||||||
{
|
{
|
||||||
View3D *vd= (View3D *) sl;
|
View3D *vd= (View3D *) sl;
|
||||||
|
|
||||||
BGpic *bgpic;
|
|
||||||
for (bgpic= vd->bgpicbase.first; bgpic; bgpic= bgpic->next) {
|
|
||||||
if (bgpic->ima) bgpic->ima->id.us--;
|
|
||||||
}
|
|
||||||
BLI_freelistN(&vd->bgpicbase);
|
BLI_freelistN(&vd->bgpicbase);
|
||||||
|
|
||||||
if (vd->localvd) MEM_freeN(vd->localvd);
|
if (vd->localvd) MEM_freeN(vd->localvd);
|
||||||
@ -355,7 +351,6 @@ static SpaceLink *view3d_duplicate(SpaceLink *sl)
|
|||||||
{
|
{
|
||||||
View3D *v3do= (View3D *)sl;
|
View3D *v3do= (View3D *)sl;
|
||||||
View3D *v3dn= MEM_dupallocN(sl);
|
View3D *v3dn= MEM_dupallocN(sl);
|
||||||
BGpic *bgpic;
|
|
||||||
|
|
||||||
/* clear or remove stuff from old */
|
/* clear or remove stuff from old */
|
||||||
|
|
||||||
@ -374,9 +369,6 @@ static SpaceLink *view3d_duplicate(SpaceLink *sl)
|
|||||||
/* copy or clear inside new stuff */
|
/* copy or clear inside new stuff */
|
||||||
|
|
||||||
BLI_duplicatelist(&v3dn->bgpicbase, &v3do->bgpicbase);
|
BLI_duplicatelist(&v3dn->bgpicbase, &v3do->bgpicbase);
|
||||||
for (bgpic= v3dn->bgpicbase.first; bgpic; bgpic= bgpic->next)
|
|
||||||
if (bgpic->ima)
|
|
||||||
bgpic->ima->id.us++;
|
|
||||||
|
|
||||||
v3dn->properties_storage= NULL;
|
v3dn->properties_storage= NULL;
|
||||||
|
|
||||||
|
@ -3648,12 +3648,6 @@ void ED_view3D_background_image_remove(View3D *v3d, BGpic *bgpic)
|
|||||||
{
|
{
|
||||||
BLI_remlink(&v3d->bgpicbase, bgpic);
|
BLI_remlink(&v3d->bgpicbase, bgpic);
|
||||||
|
|
||||||
if (bgpic->ima)
|
|
||||||
id_us_min(&bgpic->ima->id);
|
|
||||||
|
|
||||||
if (bgpic->clip)
|
|
||||||
id_us_min(&bgpic->clip->id);
|
|
||||||
|
|
||||||
MEM_freeN(bgpic);
|
MEM_freeN(bgpic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user