X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduckmatic.cpp;h=bbf6f749c676ab501702885d82b83166e46ab943;hb=587d6ca07e817b7a98e8eb4833492b2388184df4;hp=df247aeec8a1ce763829e6a3aa957ec085c5988f;hpb=756c0d29ac1742f231e6615f9a577e574e35a4af;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp index df247ae..bbf6f74 100644 --- a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp +++ b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp @@ -259,7 +259,7 @@ Duckmatic::is_duck_group_selectable(const etl::handle& x)const { const Type type(get_type_mask()); - if(( x->get_type() && (!(type & x->get_type())) ) ) + if(( x->get_type() && (!(type & x->get_type())) || !x->get_editable() ) ) return false; if(x->get_value_desc().parent_is_layer_param() && type & Duck::TYPE_POSITION) @@ -768,12 +768,14 @@ Duckmatic::find_duck(synfig::Point point, synfig::Real radius, Duck::Type type) { const Duck::Handle& duck(iter->second); - if(!duck->get_editable()) + if(duck->get_ignore()) continue; Real dist((duck->get_trans_point()-point).mag_squared()); if(duck->get_type()&Duck::TYPE_VERTEX) dist*=1.0001; + else if(duck->get_type()&Duck::TYPE_RADIUS) + dist*=0.9999; if(dist<=closest && !( duck->get_type() && (!(type & duck->get_type())) ) ) {