diff options
| author | Diederik van Lierop <mailat-signdiedenrezidotnl> | 2010-07-24 12:37:50 +0000 |
|---|---|---|
| committer | Diederik van Lierop <mailat-signdiedenrezidotnl> | 2010-07-24 12:37:50 +0000 |
| commit | a96bb3e891e103864fe501a92bad96a9ad04351e (patch) | |
| tree | 2da50f7f546322c122ac26884870f87e03b613c5 /src/object-snapper.cpp | |
| parent | support for transform elements (Bug 600473) (diff) | |
| download | inkscape-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.cpp | 12 |
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 |
