My fix for #22317 make that every time you delete an object,
blender go to perspective view, fixed now.
This commit is contained in:
2010-06-18 15:23:39 +00:00
parent fe3d388af2
commit 000d23e05c

View File

@@ -337,7 +337,7 @@ void unlink_object(Scene *scene, Object *ob)
ModifierData *md; ModifierData *md;
ARegion *ar; ARegion *ar;
RegionView3D *rv3d; RegionView3D *rv3d;
int a; int a, found;
unlink_controllers(&ob->controllers); unlink_controllers(&ob->controllers);
unlink_actuators(&ob->actuators); unlink_actuators(&ob->actuators);
@@ -609,27 +609,36 @@ void unlink_object(Scene *scene, Object *ob)
while(sa) { while(sa) {
SpaceLink *sl; SpaceLink *sl;
for (sl= sa->spacedata.first; sl; sl= sl->next) {
if(sl->spacetype==SPACE_VIEW3D) {
View3D *v3d= (View3D*) sl;
found= 0;
if(v3d->camera==ob) {
v3d->camera= NULL;
found= 1;
}
if(v3d->localvd && v3d->localvd->camera==ob ) {
v3d->localvd->camera= NULL;
found += 2;
}
if (found) {
if (sa->spacetype == SPACE_VIEW3D) { if (sa->spacetype == SPACE_VIEW3D) {
for (ar= sa->regionbase.first; ar; ar= ar->next) { for (ar= sa->regionbase.first; ar; ar= ar->next) {
if (ar->regiontype==RGN_TYPE_WINDOW) { if (ar->regiontype==RGN_TYPE_WINDOW) {
rv3d= (RegionView3D *)ar->regiondata; rv3d= (RegionView3D *)ar->regiondata;
if (found == 1 || found == 3) {
if (rv3d->persp == RV3D_CAMOB) if (rv3d->persp == RV3D_CAMOB)
rv3d->persp= RV3D_PERSP; rv3d->persp= RV3D_PERSP;
}
if (found == 2 || found == 3) {
if (rv3d->localvd && rv3d->localvd->persp == RV3D_CAMOB) if (rv3d->localvd && rv3d->localvd->persp == RV3D_CAMOB)
rv3d->localvd->persp= RV3D_PERSP; rv3d->localvd->persp= RV3D_PERSP;
} }
} }
} }
for (sl= sa->spacedata.first; sl; sl= sl->next) {
if(sl->spacetype==SPACE_VIEW3D) {
View3D *v3d= (View3D*) sl;
if(v3d->camera==ob) {
v3d->camera= NULL;
} }
if(v3d->localvd && v3d->localvd->camera==ob ) {
v3d->localvd->camera= NULL;
} }
} }
else if(sl->spacetype==SPACE_OUTLINER) { else if(sl->spacetype==SPACE_OUTLINER) {