X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduckmatic.cpp;h=0d889827cdf3668883a5755d0edbc6e522eda794;hb=6989d1403b14b5b27dbf81b2c1cf6889511adf97;hp=485b9f62c954b049cca9d69ca2d86353488cf367;hpb=ee303c8406912a41b5e6c838b131c0777abd8014;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp index 485b9f6..0d88982 100644 --- a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp +++ b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp @@ -881,8 +881,10 @@ Duckmatic::find_duck(synfig::Point point, synfig::Real radius, Duck::Type type) { const Duck::Handle& duck(iter->second); - if(duck->get_ignore()) + if(duck->get_ignore() || + (duck->get_type() && !(type & duck->get_type()))) continue; + Real dist((duck->get_trans_point()-point).mag_squared()); if(duck->get_type()&Duck::TYPE_VERTEX) @@ -892,7 +894,7 @@ Duckmatic::find_duck(synfig::Point point, synfig::Real radius, Duck::Type type) else if(duck->get_type()&Duck::TYPE_RADIUS) dist*=0.9999; - if(distget_type() && (!(type & duck->get_type())) ) ) + if(dist<=closest) { closest=dist; ret=duck;