editable(false),
radius_(false),
tangent_(false),
- hover_(false)
+ hover_(false),
+ ignore_(false)
{ duck_count++; _DuckCounter::counter++; }
Duck::Duck(const synfig::Point &point):
editable(false),
radius_(false),
tangent_(false),
- hover_(false)
+ hover_(false),
+ ignore_(false)
{ duck_count++; _DuckCounter::counter++;}
Duck::Duck(const synfig::Point &point,const synfig::Point &origin):
editable(false),
radius_(true),
tangent_(false),
- hover_(false)
+ hover_(false),
+ ignore_(false)
{ duck_count++; _DuckCounter::counter++;}
Duck::~Duck() { duck_count--; _DuckCounter::counter--;}
bool radius_;
bool tangent_;
bool hover_;
+ bool ignore_;
synfig::TransformStack transform_stack_;
//! Retrieves whether to show the duck as if it is being hovered over
bool get_hover()const { return hover_; }
+ //! Sets whether to ignore the duck when checking for user interaction
+ void set_ignore(bool i) { ignore_=i; }
+
+ //! Retrieves whether to ignore the duck when checking for user interaction
+ bool get_ignore()const { return ignore_; }
+
void set_connect_duck(const etl::handle<Duck>& x) { connect_duck=x; }
void set_box_duck(const etl::handle<Duck>& x) { box_duck=x; }
{
const Duck::Handle& duck(iter->second);
+ if(duck->get_ignore())
+ continue;
Real dist((duck->get_trans_point()-point).mag_squared());
if(duck->get_type()&Duck::TYPE_VERTEX)
if(bezier && !loop_)
{
duck=new WorkArea::Duck(bline_point.get_vertex());
- duck->set_editable(false);
+ duck->set_ignore(true);
duck->set_name("temp");
// Add the tangent1 duck
tduck=new WorkArea::Duck(Vector(0,0));
- tduck->set_editable(false);
+ tduck->set_ignore(true);
tduck->set_name("ttemp");
tduck->set_origin(duck);
tduck->set_scalar(-0.33333333333333333);