diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-02-27 04:33:27 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-02-27 04:33:27 +0400 |
commit | 26133a96ae82f44de12c4952ddca07578ede752c (patch) | |
tree | cffefe69ef0c772c3111553f536e523f436ad27f /source/blender | |
parent | bb1164a798a739e121f49b21d170ca2f68ca51aa (diff) |
Fix for VIEW3D_OT_camera_to_view with quadview, disable in camera view
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 0c3a2b853aa..83e4f112a8c 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -408,10 +408,15 @@ void VIEW3D_OT_smoothview(wmOperatorType *ot) static int view3d_camera_to_view_exec(bContext *C, wmOperator *UNUSED(op)) { - View3D *v3d = CTX_wm_view3d(C); - RegionView3D *rv3d = CTX_wm_region_view3d(C); + View3D *v3d; + ARegion *ar; + RegionView3D *rv3d; + ObjectTfmProtectedChannels obtfm; + ED_view3d_context_user_region(C, &v3d, &ar); + rv3d = ar->regiondata; + copy_qt_qt(rv3d->lviewquat, rv3d->viewquat); rv3d->lview = rv3d->view; if (rv3d->persp != RV3D_CAMOB) { @@ -435,11 +440,17 @@ static int view3d_camera_to_view_exec(bContext *C, wmOperator *UNUSED(op)) static int view3d_camera_to_view_poll(bContext *C) { - View3D *v3d = CTX_wm_view3d(C); - if (v3d && v3d->camera && v3d->camera->id.lib == NULL) { - RegionView3D *rv3d = CTX_wm_region_view3d(C); - if (rv3d && (rv3d->viewlock & RV3D_LOCKED) == 0) { - return 1; + View3D *v3d; + ARegion *ar; + + if (ED_view3d_context_user_region(C, &v3d, &ar)) { + RegionView3D *rv3d = ar->regiondata; + if (v3d && v3d->camera && v3d->camera->id.lib == NULL) { + if (rv3d && (rv3d->viewlock & RV3D_LOCKED) == 0) { + if (rv3d->persp != RV3D_CAMOB) { + return 1; + } + } } } |