Revision: 43411
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43411
Author:   campbellbarton
Date:     2012-01-16 06:57:37 +0000 (Mon, 16 Jan 2012)
Log Message:
-----------
Allow camera 1:1 and center camera view to run from menu's.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c      2012-01-16 
06:43:58 UTC (rev 43410)
+++ trunk/blender/source/blender/blenkernel/intern/image.c      2012-01-16 
06:57:37 UTC (rev 43411)
@@ -1608,7 +1608,7 @@
        return(ok);
 }
 
-/* same as BKE_write_ibuf_as but crappy workaround not to perminantly modify
+/* same as BKE_write_ibuf() but crappy workaround not to perminantly modify
  * _some_, values in the imbuf */
 int BKE_write_ibuf_as(ImBuf *ibuf, const char *name, ImageFormatData *imf,
                       const short save_copy)

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-01-16 06:43:58 UTC (rev 43410)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-01-16 06:57:37 UTC (rev 43411)
@@ -921,6 +921,22 @@
        return 0;
 }
 
+/* test for unlocked camera view in quad view */
+static int view3d_camera_user_poll(bContext *C)
+{
+       View3D *v3d;
+       ARegion *ar;
+
+       if (ED_view3d_context_user_region(C, &v3d, &ar)) {
+               RegionView3D *rv3d = ar->regiondata;
+               if(rv3d->persp==RV3D_CAMOB) {
+                       return 1;
+               }
+       }
+
+       return 0;
+}
+
 static int viewrotate_cancel(bContext *C, wmOperator *op)
 {
        viewops_data_free(C, op);
@@ -2257,13 +2273,18 @@
 
 static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* 
was view3d_home() in 2.4x */
 {
-       ARegion *ar= CTX_wm_region(C);
-       RegionView3D *rv3d= CTX_wm_region_view3d(C);
-       View3D *v3d= CTX_wm_view3d(C);
        Scene *scene= CTX_data_scene(C);
        float xfac, yfac;
        float size[2];
 
+       View3D *v3d;
+       ARegion *ar;
+       RegionView3D *rv3d;
+
+       /* no NULL check is needed, poll checks */
+       ED_view3d_context_user_region(C, &v3d, &ar);
+       rv3d = ar->regiondata;
+
        rv3d->camdx= rv3d->camdy= 0.0f;
 
        ED_view3d_calc_camera_border_size(scene, ar, v3d, rv3d, size);
@@ -2289,7 +2310,7 @@
 
        /* api callbacks */
        ot->exec= view3d_center_camera_exec;
-       ot->poll= view3d_camera_active_poll;
+       ot->poll= view3d_camera_user_poll;
 
        /* flags */
        ot->flag= 0;
@@ -2543,12 +2564,17 @@
 static int view3d_zoom_1_to_1_camera_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Scene *scene= CTX_data_scene(C);
-       ARegion *ar= CTX_wm_region(C);
 
-       view3d_set_1_to_1_viewborder(scene, ar, CTX_wm_view3d(C));
+       View3D *v3d;
+       ARegion *ar;
 
-       WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
+       /* no NULL check is needed, poll checks */
+       ED_view3d_context_user_region(C, &v3d, &ar);
 
+       view3d_set_1_to_1_viewborder(scene, ar, v3d);
+
+       WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d);
+
        return OPERATOR_FINISHED;
 }
 
@@ -2561,7 +2587,7 @@
 
        /* api callbacks */
        ot->exec= view3d_zoom_1_to_1_camera_exec;
-       ot->poll= view3d_camera_active_poll;
+       ot->poll= view3d_camera_user_poll;
 
        /* flags */
        ot->flag= 0;
@@ -2660,6 +2686,7 @@
        static int perspo = RV3D_PERSP;
        int viewnum, align_active, nextperspo;
 
+       /* no NULL check is needed, poll checks */
        ED_view3d_context_user_region(C, &v3d, &ar);
        rv3d = ar->regiondata;
 

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

Reply via email to