summaryrefslogtreecommitdiffstats
path: root/src/object-snapper.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mailat-signdiedenrezidotnl>2010-07-24 12:37:50 +0000
committerDiederik van Lierop <mailat-signdiedenrezidotnl>2010-07-24 12:37:50 +0000
commita96bb3e891e103864fe501a92bad96a9ad04351e (patch)
tree2da50f7f546322c122ac26884870f87e03b613c5 /src/object-snapper.cpp
parentsupport for transform elements (Bug 600473) (diff)
downloadinkscape-a96bb3e891e103864fe501a92bad96a9ad04351e.tar.gz
inkscape-a96bb3e891e103864fe501a92bad96a9ad04351e.zip
Avoid self-snapping when dragging a rotation center, and draw the rotation center at the snapped position
(bzr r9641)
Diffstat (limited to 'src/object-snapper.cpp')
-rw-r--r--src/object-snapper.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp
index ef5dcc7d0..c1ed08f12 100644
--- a/src/object-snapper.cpp
+++ b/src/object-snapper.cpp
@@ -228,11 +228,17 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::SnapSourceType const &t,
_snapmanager->snapprefs.setSnapIntersectionCS(false);
}
+ bool old_pref2 = _snapmanager->snapprefs.getIncludeItemCenter();
+ if ((*i).item == _snapmanager->getRotationCenterSource()) {
+ // don't snap to this item's rotation center
+ _snapmanager->snapprefs.setIncludeItemCenter(false);
+ }
+
sp_item_snappoints(root_item, *_points_to_snap_to, &_snapmanager->snapprefs);
- if (_snapmanager->snapprefs.getSnapToItemPath()) {
- _snapmanager->snapprefs.setSnapIntersectionCS(old_pref);
- }
+ // restore the original snap preferences
+ _snapmanager->snapprefs.setSnapIntersectionCS(old_pref);
+ _snapmanager->snapprefs.setIncludeItemCenter(old_pref2);
}
//Collect the bounding box's corners so we can snap to them