X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmanipulator.cpp;h=300802110e295ae0ba090d3ea722c5294546d908;hb=6ba6af3637c299ab00828c49de9151429488cc17;hp=e9d6b955f05619e678223200398a8ea8db3b0c85;hpb=f4c6c924dcf439a6a68d2761fab196eaab165916;p=r2c2.git diff --git a/source/designer/manipulator.cpp b/source/designer/manipulator.cpp index e9d6b95..3008021 100644 --- a/source/designer/manipulator.cpp +++ b/source/designer/manipulator.cpp @@ -211,7 +211,7 @@ void Manipulator::connect() return; } - float limit = 0.001; + float limit = designer.get_layout().get_catalogue().get_gauge()/10; Track *track1 = tracks.front().track; Point pos1; @@ -372,6 +372,8 @@ void Manipulator::pointer_motion(int x, int y) } const set <racks = designer.get_layout().get_tracks(); + float limit = max(designer.get_layout().get_catalogue().get_gauge(), + designer.get_camera_controller().get_view_scale()*5/event_source.get_height()); MTrack *snapped = 0; for(set::const_iterator i=ltracks.begin(); (i!=ltracks.end() && !snapped); ++i) { @@ -381,7 +383,7 @@ void Manipulator::pointer_motion(int x, int y) if(!ok) continue; for(vector::iterator j=tracks.begin(); (j!=tracks.end() && !snapped); ++j) - if(j->track->snap_to(**i, false)) + if(j->track->snap_to(**i, false, limit)) snapped = &*j; }