From 28f31bdfd807e35d7016623cc9af8467165a1052 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 17 Feb 2015 16:49:30 +1100 Subject: etch-a-ton: fix crash selecting strokes --- source/blender/editors/armature/armature_intern.h | 2 +- source/blender/editors/armature/armature_select.c | 4 +++- source/blender/editors/armature/editarmature_sketch.c | 10 +++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/armature') diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h index 6d616384b9a..2c64c9aa345 100644 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@ -215,7 +215,7 @@ void POSE_OT_propagate(struct wmOperatorType *ot); */ EditBone *make_boneList(struct ListBase *edbo, struct ListBase *bones, struct EditBone *parent, struct Bone *actBone); -void BIF_sk_selectStroke(struct bContext *C, const int mval[2], short extend); +bool BIF_sk_selectStroke(struct bContext *C, const int mval[2], const bool extend); /* duplicate method */ void preEditBoneDuplicate(struct ListBase *editbones); diff --git a/source/blender/editors/armature/armature_select.c b/source/blender/editors/armature/armature_select.c index 307e6c076f2..da5d660c676 100644 --- a/source/blender/editors/armature/armature_select.c +++ b/source/blender/editors/armature/armature_select.c @@ -485,7 +485,9 @@ bool mouse_armature(bContext *C, const int mval[2], bool extend, bool deselect, view3d_set_viewcontext(C, &vc); - BIF_sk_selectStroke(C, mval, extend); + if (BIF_sk_selectStroke(C, mval, extend)) { + return true; + } nearBone = get_nearest_editbonepoint(&vc, mval, arm->edbo, 1, &selmask); if (nearBone) { diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c index 6c2d4256a0f..c0098a3726a 100644 --- a/source/blender/editors/armature/editarmature_sketch.c +++ b/source/blender/editors/armature/editarmature_sketch.c @@ -1951,7 +1951,7 @@ static void sk_applyGesture(bContext *C, SK_Sketch *sketch) /********************************************/ -static int sk_selectStroke(bContext *C, SK_Sketch *sketch, const int mval[2], int extend) +static bool sk_selectStroke(bContext *C, SK_Sketch *sketch, const int mval[2], const bool extend) { ViewContext vc; rcti rect; @@ -2239,15 +2239,19 @@ static int sketch_delete(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNU return OPERATOR_FINISHED; } -void BIF_sk_selectStroke(bContext *C, const int mval[2], short extend) +bool BIF_sk_selectStroke(bContext *C, const int mval[2], const bool extend) { ToolSettings *ts = CTX_data_tool_settings(C); SK_Sketch *sketch = contextSketch(C, 0); if (sketch != NULL && ts->bone_sketching & BONE_SKETCHING) { - if (sk_selectStroke(C, sketch, mval, extend)) + if (sk_selectStroke(C, sketch, mval, extend)) { ED_area_tag_redraw(CTX_wm_area(C)); + return true; + } } + + return false; } void BIF_convertSketch(bContext *C) -- cgit v1.2.3