+ double dist = cv->nearest_point(pi, output_x,output_y);
+ if( dist >= 0 )
+ point_list->set_selected(pi);
+ break;
+ }
+ if( (state & Button3Mask) ) {
+ if( (state & (ControlMask | AltMask)) ) { // drag selected curve(s)
+ int dx = round(output_x - last_x);
+ int dy = round(output_y - last_y);
+ for( int i=0; i<points.size(); ++i ) {
+ SketcherPoint *pt = points[i];
+ pt->x += dx; pt->y += dy;
+ }
+ SketcherPoint *pt = pi >= 0 && pi < points.size() ?
+ points[pi] : 0;
+ point_x->update(pt ? pt->x : 0.f);
+ point_y->update(pt ? pt->y : 0.f);
+ point_list->update(pi);
+ break;
+ }
+ double dist = config.nearest_point(ci, pi, output_x,output_y);
+ if( dist >= 0 ) {
+ curve_list->update(ci);
+ point_list->update(pi);
+ }
+ break;