]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/manipulator.cpp
Make snap limit relative to gauge
[r2c2.git] / source / designer / manipulator.cpp
index e9d6b955f05619e678223200398a8ea8db3b0c85..300802110e295ae0ba090d3ea722c5294546d908 100644 (file)
@@ -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<Track *> &ltracks = 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<Track *>::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<MTrack>::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;
                }