Code

- Constrained snap: proper implementation of the preference to snap the mouse pointer...
[inkscape.git] / src / snap-candidate.h
index bd378bec83e2d57baed389292f680f1ad2ba6b1d..772800be56daa25bc77771204081f95b8705522a 100644 (file)
@@ -38,23 +38,25 @@ public:
         _source_type(source),
         _target_type(target)
     {
-        _source_num = 0;
+        _source_num = -1;
         _target_bbox = Geom::OptRect();
     }
 
-    SnapCandidatePoint(Geom::Point const &point, Inkscape::SnapSourceType const source, long const source_num = 0)
+    SnapCandidatePoint(Geom::Point const &point, Inkscape::SnapSourceType const source)
         : _point(point),
         _source_type(source),
         _target_type(Inkscape::SNAPTARGET_UNDEFINED),
-        _source_num(source_num)
+        _source_num(-1)
     {
         _target_bbox = Geom::OptRect();
     }
 
     inline Geom::Point const & getPoint() const {return _point;}
     inline Inkscape::SnapSourceType getSourceType() const {return _source_type;}
+    bool isSingleHandle() const {return (_source_type == SNAPSOURCE_NODE_HANDLE || _source_type == SNAPSOURCE_OTHER_HANDLE) && _source_num == -1;}
     inline Inkscape::SnapTargetType getTargetType() const {return _target_type;}
     inline long getSourceNum() const {return _source_num;}
+    void setSourceNum(long num) {_source_num = num;}
     inline Geom::OptRect const getTargetBBox() const {return _target_bbox;}
 
 private:
@@ -67,7 +69,9 @@ private:
     Inkscape::SnapSourceType _source_type;
     Inkscape::SnapTargetType _target_type;
 
-    //Sequence number of the source point within the set of points that is to be snapped. Starting at zero
+    //Sequence number of the source point within the set of points that is to be snapped.
+    // - Starts counting at zero, but only if there might be more points following (e.g. in the selector tool)
+    // - Minus one (-1) if we're sure that we have only a single point
     long _source_num;
 
     // If this is a target and it belongs to a bounding box, e.g. when the target type is