Fix #26087: in a curve, can't make segment if Fkey was pressed 2 times before on a single vertex

- Disallow setting cyclic flag for single-point segment when this lonely
  segment is selected
- Clear cyclic flag for single-pointed segments when finding segments which
  can be merged
This commit is contained in:
Sergey Sharybin 2011-02-15 16:09:53 +00:00
parent cb12d708c7
commit c4ad7b4ebe

@ -4001,6 +4001,9 @@ static int make_segment_exec(bContext *C, wmOperator *op)
/* find both nurbs and points, nu1 will be put behind nu2 */
for(nu= nubase->first; nu; nu= nu->next) {
if(nu->pntsu == 1)
nu->flagu&= ~CU_NURB_CYCLIC;
if((nu->flagu & CU_NURB_CYCLIC)==0) { /* not cyclic */
if(nu->type == CU_BEZIER) {
if(nu1==0) {
@ -4116,7 +4119,7 @@ static int make_segment_exec(bContext *C, wmOperator *op)
ok= 1;
} else if(nu1 && !nu2 && nu1->type == CU_BEZIER) {
if(!(nu1->flagu & CU_NURB_CYCLIC)) {
if(BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt) &&
if(nu1->pntsu>1 && BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt) &&
BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt+(nu1->pntsu-1))) {
nu1->flagu|= CU_NURB_CYCLIC;
calchandlesNurb(nu1);