[Bf-blender-cvs] [ee1b1b9] master: Curve: change rules wrt active bezier

Campbell Barton noreply at git.blender.org
Thu Jul 9 06:57:24 CEST 2015


Commit: ee1b1b9e59c790acb3e19b2ca1e004d0b76012af
Author: Campbell Barton
Date:   Thu Jul 9 14:52:01 2015 +1000
Branches: master
https://developer.blender.org/rBee1b1b9e59c790acb3e19b2ca1e004d0b76012af

Curve: change rules wrt active bezier

Activate the vertex even if only a single handle is selected

===================================================================

M	source/blender/blenkernel/intern/curve.c
M	source/blender/editors/curve/editcurve.c
M	source/blender/editors/space_view3d/drawobject.c

===================================================================

diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 01e443c..d8a7b2d 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -4297,12 +4297,14 @@ void BKE_curve_nurb_vert_active_validate(Curve *cu)
 
 	if (BKE_curve_nurb_vert_active_get(cu, &nu, &vert)) {
 		if (nu->type == CU_BEZIER) {
-			if ((((BezTriple *)vert)->f1 & SELECT) == 0) {
+			BezTriple *bezt = vert;
+			if (BEZT_ISSEL_ANY(bezt) == 0) {
 				cu->actvert = CU_ACT_NONE;
 			}
 		}
 		else {
-			if ((((BPoint *)vert)->f1 & SELECT) == 0) {
+			BPoint *bp = vert;
+			if ((bp->f1 & SELECT) == 0) {
 				cu->actvert = CU_ACT_NONE;
 			}
 		}
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index b468ac3..bf3dece 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -4185,18 +4185,16 @@ bool mouse_nurb(bContext *C, const int mval[2], bool extend, bool deselect, bool
 			if (bezt) {
 				if (hand == 1) {
 					select_beztriple(bezt, SELECT, SELECT, HIDDEN);
-					BKE_curve_nurb_vert_active_set(cu, nu, bezt);
 				}
 				else {
 					if (hand == 0) bezt->f1 |= SELECT;
 					else bezt->f3 |= SELECT;
-
-					cu->actvert = CU_ACT_NONE;
 				}
+				BKE_curve_nurb_vert_active_set(cu, nu, bezt);
 			}
 			else {
-				BKE_curve_nurb_vert_active_set(cu, nu, bp);
 				select_bpoint(bp, SELECT, SELECT, HIDDEN);
+				BKE_curve_nurb_vert_active_set(cu, nu, bp);
 			}
 		}
 		else if (deselect) {
@@ -4254,18 +4252,16 @@ bool mouse_nurb(bContext *C, const int mval[2], bool extend, bool deselect, bool
 
 				if (hand == 1) {
 					select_beztriple(bezt, SELECT, SELECT, HIDDEN);
-					BKE_curve_nurb_vert_active_set(cu, nu, bezt);
 				}
 				else {
 					if (hand == 0) bezt->f1 |= SELECT;
 					else bezt->f3 |= SELECT;
-
-					cu->actvert = CU_ACT_NONE;
 				}
+				BKE_curve_nurb_vert_active_set(cu, nu, bezt);
 			}
 			else {
-				BKE_curve_nurb_vert_active_set(cu, nu, bp);
 				select_bpoint(bp, SELECT, SELECT, HIDDEN);
+				BKE_curve_nurb_vert_active_set(cu, nu, bp);
 			}
 		}
 
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 56de06b..988d4eb 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -6253,8 +6253,8 @@ static void drawvertsN(Nurb *nu, const char sel, const bool hide_handles, const
 			if (bezt->hide == 0) {
 				if (sel == 1 && bezt == vert) {
 					UI_ThemeColor(TH_ACTIVE_VERT);
-					bglVertex3fv(bezt->vec[1]);
 
+					if (bezt->f2 & SELECT) bglVertex3fv(bezt->vec[1]);
 					if (!hide_handles) {
 						if (bezt->f1 & SELECT) bglVertex3fv(bezt->vec[0]);
 						if (bezt->f3 & SELECT) bglVertex3fv(bezt->vec[2]);




More information about the Bf-blender-cvs mailing list