From fee3daee56408eaabd80123df0530f337c5e7004 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Mon, 5 Apr 2010 08:13:04 +0000 Subject: 'Fix' [#21843] Manipulating Set Render Border sliders causes a crash Just make the operator cancel if the region in the context is not a RegionView3d. This is not an issue isolated to this operator, it affects other ones that require a RegionView3d too, like knife. One to solve for later, at least this doesn't crash now. --- source/blender/editors/space_view3d/view3d_edit.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/editors/space_view3d/view3d_edit.c') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 12ba14ab189..101667719fa 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1493,6 +1493,9 @@ static int render_border_exec(bContext *C, wmOperator *op) rect.xmax= RNA_int_get(op->ptr, "xmax"); rect.ymax= RNA_int_get(op->ptr, "ymax"); + if (!ar || ar->regiontype != RGN_TYPE_WINDOW) + return OPERATOR_CANCELLED; + /* calculate range */ calc_viewborder(scene, ar, v3d, &vb); -- cgit v1.2.3 From 7119d5ba70e46f48dcd5159458cbc46445447fad Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 16 Apr 2010 02:14:56 +0000 Subject: Fix [#21492] "Align to view" option from tools panel's operator part doesn't works. Also changed some usage of CTX_wm_region_view3d(C) to ED_view3d_context_rv3d(C) --- source/blender/editors/space_view3d/view3d_edit.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/space_view3d/view3d_edit.c') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 101667719fa..6f97bc04395 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1482,6 +1482,7 @@ static int render_border_exec(bContext *C, wmOperator *op) { View3D *v3d = CTX_wm_view3d(C); ARegion *ar= CTX_wm_region(C); + RegionView3D *rv3d= ED_view3d_context_rv3d(C); Scene *scene= CTX_data_scene(C); rcti rect; @@ -1493,11 +1494,8 @@ static int render_border_exec(bContext *C, wmOperator *op) rect.xmax= RNA_int_get(op->ptr, "xmax"); rect.ymax= RNA_int_get(op->ptr, "ymax"); - if (!ar || ar->regiontype != RGN_TYPE_WINDOW) - return OPERATOR_CANCELLED; - /* calculate range */ - calc_viewborder(scene, ar, v3d, &vb); + calc_viewborder(scene, ar, rv3d, v3d, &vb); scene->r.border.xmin= ((float)rect.xmin-vb.xmin)/(vb.xmax-vb.xmin); scene->r.border.ymin= ((float)rect.ymin-vb.ymin)/(vb.ymax-vb.ymin); @@ -1530,7 +1528,7 @@ static int render_border_exec(bContext *C, wmOperator *op) static int view3d_render_border_invoke(bContext *C, wmOperator *op, wmEvent *event) { - RegionView3D *rv3d= CTX_wm_region_view3d(C); + RegionView3D *rv3d= ED_view3d_context_rv3d(C); /* if not in camera view do not exec the operator*/ if (rv3d->persp == RV3D_CAMOB) return WM_border_select_invoke(C, op, event); -- cgit v1.2.3