diff --git a/src/guide-snapper.cpp b/src/guide-snapper.cpp
index fbf1af0af1bd61c38e64177b90bfcd32cd1759ea..fb16382d26eddc2862e6171be9d895e286991065 100644 (file)
--- a/src/guide-snapper.cpp
+++ b/src/guide-snapper.cpp
@@ -22,24 +22,36 @@ Inkscape::GuideSnapper::GuideSnapper(SPNamedView const *nv, NR::Coord const d) :
}
-Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(NR::Point const &p) const
+Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(NR::Point const &/*p*/) const
{
LineList s;
+ if ( NULL == _named_view || ThisSnapperMightSnap() == false) {
+ return s;
+ }
+
for (GSList const *l = _named_view->guides; l != NULL; l = l->next) {
SPGuide const *g = SP_GUIDE(l->data);
-
- /* We assume here that guides are horizontal or vertical */
- if (g->normal == component_vectors[NR::X]) {
- s.push_back(std::make_pair(NR::X, g->position));
- } else {
- s.push_back(std::make_pair(NR::Y, g->position));
- }
+ s.push_back(std::make_pair(g->normal_to_line, g->point_on_line));
}
return s;
}
+/**
+ * \return true if this Snapper will snap at least one kind of point.
+ */
+bool Inkscape::GuideSnapper::ThisSnapperMightSnap() const
+{
+ return _named_view == NULL ? false : (_snap_enabled && _snap_from != 0 && _named_view->showguides);
+}
+
+void Inkscape::GuideSnapper::_addSnappedLine(SnappedConstraints &sc, NR::Point const snapped_point, NR::Coord const snapped_distance, NR::Point const normal_to_line, NR::Point const point_on_line) const
+{
+ SnappedLine dummy = SnappedLine(snapped_point, snapped_distance, normal_to_line, point_on_line);
+ sc.guide_lines.push_back(dummy);
+}
+
/*
Local Variables:
mode:c++