Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-04-21 12:11:47 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-04-21 12:11:47 +0400
commite4a2df9fec4859609106179715af54eed608a29f (patch)
treed5d8302b5d7ad2fa69c229a0f18fcc1d90e78427 /source/blender
parent9ae0e585b0aab466c978ec1a55c824d902faa3b4 (diff)
View2d: check UI_view2d_view_to_region_clip succeeds before using the result
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/space_clip/clip_graph_ops.c8
-rw-r--r--source/blender/editors/space_graph/graph_select.c16
-rw-r--r--source/blender/editors/space_node/node_select.c5
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c11
4 files changed, 20 insertions, 20 deletions
diff --git a/source/blender/editors/space_clip/clip_graph_ops.c b/source/blender/editors/space_clip/clip_graph_ops.c
index 074d76c1a41..8596c8fb19a 100644
--- a/source/blender/editors/space_clip/clip_graph_ops.c
+++ b/source/blender/editors/space_clip/clip_graph_ops.c
@@ -193,10 +193,10 @@ static bool mouse_select_knot(bContext *C, float co[2], bool extend)
if (userdata.marker) {
int x1, y1, x2, y2;
- UI_view2d_view_to_region_clip(v2d, co[0], co[1], &x1, &y1);
- UI_view2d_view_to_region_clip(v2d, userdata.min_co[0], userdata.min_co[1], &x2, &y2);
-
- if (abs(x2 - x1) <= delta && abs(y2 - y1) <= delta) {
+ if (UI_view2d_view_to_region_clip(v2d, co[0], co[1], &x1, &y1) &&
+ UI_view2d_view_to_region_clip(v2d, userdata.min_co[0], userdata.min_co[1], &x2, &y2) &&
+ (abs(x2 - x1) <= delta && abs(y2 - y1) <= delta))
+ {
if (!extend) {
SelectUserData selectdata = {SEL_DESELECT};
diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c
index 08f561726d9..2e0e2b1a0d1 100644
--- a/source/blender/editors/space_graph/graph_select.c
+++ b/source/blender/editors/space_graph/graph_select.c
@@ -1048,16 +1048,14 @@ static void nearest_fcurve_vert_store(
* needed to access the relevant vertex coordinates in the 3x3
* 'vec' matrix
*/
- UI_view2d_view_to_region_clip(v2d,
- bezt->vec[hpoint + 1][0], bezt->vec[hpoint + 1][1] * unit_scale,
- &screen_co[0], &screen_co[1]);
-
- /* check if distance from mouse cursor to vert in screen space is within tolerance */
- dist = len_v2v2_int(mval, screen_co);
-
- if (dist <= GVERTSEL_TOL) {
+ if (UI_view2d_view_to_region_clip(v2d,
+ bezt->vec[hpoint + 1][0], bezt->vec[hpoint + 1][1] * unit_scale,
+ &screen_co[0], &screen_co[1]) &&
+ /* check if distance from mouse cursor to vert in screen space is within tolerance */
+ ((dist = len_v2v2_int(mval, screen_co)) <= GVERTSEL_TOL))
+ {
tNearestVertInfo *nvi = (tNearestVertInfo *)matches->last;
- short replace = 0;
+ bool replace = false;
/* if there is already a point for the F-Curve, check if this point is closer than that was */
if ((nvi) && (nvi->fcu == fcu)) {
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 63323f0e370..a304b5bab51 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -590,9 +590,8 @@ static bool do_lasso_select_node(bContext *C, const int mcords[][2], short moves
BLI_rctf_cent_y(&node->totr)};
/* marker in screen coords */
- UI_view2d_view_to_region_clip(&ar->v2d, cent[0], cent[1], &screen_co[0], &screen_co[1]);
-
- if (BLI_rcti_isect_pt(&rect, screen_co[0], screen_co[1]) &&
+ if (UI_view2d_view_to_region_clip(&ar->v2d, cent[0], cent[1], &screen_co[0], &screen_co[1]) &&
+ BLI_rcti_isect_pt(&rect, screen_co[0], screen_co[1]) &&
BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], INT_MAX))
{
nodeSetSelected(node, select);
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 3a5c1335dd9..557b01557d0 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -3068,8 +3068,9 @@ static bool do_lasso_select_mesh_uv(bContext *C, const int mcords[][2], short mo
if (select != uvedit_face_select_test(scene, efa, cd_loop_uv_offset)) {
float cent[2];
uv_poly_center(efa, cent, cd_loop_uv_offset);
- UI_view2d_view_to_region_clip(&ar->v2d, cent[0], cent[1], &screen_uv[0], &screen_uv[1]);
- if (BLI_rcti_isect_pt_v(&rect, screen_uv) &&
+
+ if (UI_view2d_view_to_region_clip(&ar->v2d, cent[0], cent[1], &screen_uv[0], &screen_uv[1]) &&
+ BLI_rcti_isect_pt_v(&rect, screen_uv) &&
BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED))
{
BM_elem_flag_enable(efa, BM_ELEM_TAG);
@@ -3090,8 +3091,10 @@ static bool do_lasso_select_mesh_uv(bContext *C, const int mcords[][2], short mo
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
if ((select) != (uvedit_uv_select_test(scene, l, cd_loop_uv_offset))) {
MLoopUV *luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
- UI_view2d_view_to_region_clip(&ar->v2d, luv->uv[0], luv->uv[1], &screen_uv[0], &screen_uv[1]);
- if (BLI_rcti_isect_pt_v(&rect, screen_uv) &&
+ if (UI_view2d_view_to_region_clip(&ar->v2d,
+ luv->uv[0], luv->uv[1],
+ &screen_uv[0], &screen_uv[1]) &&
+ BLI_rcti_isect_pt_v(&rect, screen_uv) &&
BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED))
{
uvedit_uv_select_set(em, scene, l, select, false, cd_loop_uv_offset);