Revision: 29547
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29547
Author:   bdiego
Date:     2010-06-18 17:23:39 +0200 (Fri, 18 Jun 2010)

Log Message:
-----------
Fix #22625

My fix for #22317 make that every time you delete an object,
blender go to perspective view, fixed now.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c     2010-06-18 
14:45:29 UTC (rev 29546)
+++ trunk/blender/source/blender/blenkernel/intern/object.c     2010-06-18 
15:23:39 UTC (rev 29547)
@@ -337,7 +337,7 @@
        ModifierData *md;
        ARegion *ar;
        RegionView3D *rv3d;
-       int a;
+       int a, found;
        
        unlink_controllers(&ob->controllers);
        unlink_actuators(&ob->actuators);
@@ -609,28 +609,37 @@
                while(sa) {
                        SpaceLink *sl;
 
-                       if (sa->spacetype == SPACE_VIEW3D) {
-                               for (ar= sa->regionbase.first; ar; ar= 
ar->next) {
-                                       if (ar->regiontype==RGN_TYPE_WINDOW) {
-                                               rv3d= (RegionView3D 
*)ar->regiondata;
-                                               if (rv3d->persp == RV3D_CAMOB)
-                                                       rv3d->persp= RV3D_PERSP;
-                                               if (rv3d->localvd && 
rv3d->localvd->persp == RV3D_CAMOB)
-                                                       rv3d->localvd->persp= 
RV3D_PERSP;
-                                       }
-                               }
-                       }
-
                        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) {
+                                                       for (ar= 
sa->regionbase.first; ar; ar= ar->next) {
+                                                               if 
(ar->regiontype==RGN_TYPE_WINDOW) {
+                                                                       rv3d= 
(RegionView3D *)ar->regiondata;
+                                                                       if 
(found == 1 || found == 3) {
+                                                                               
if (rv3d->persp == RV3D_CAMOB)
+                                                                               
        rv3d->persp= RV3D_PERSP;
+                                                                       }
+                                                                       if 
(found == 2 || found == 3) {
+                                                                               
if (rv3d->localvd && rv3d->localvd->persp == RV3D_CAMOB)
+                                                                               
        rv3d->localvd->persp= RV3D_PERSP;
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
                                }
                                else if(sl->spacetype==SPACE_OUTLINER) {
                                        SpaceOops *so= (SpaceOops *)sl;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to