diff options
| author | root <root@jtx.marker.es> | 2013-04-07 22:50:31 +0000 |
|---|---|---|
| committer | root <root@jtx.marker.es> | 2013-04-07 22:50:31 +0000 |
| commit | 30858428c74d1fa0f119f40b99fa5e51836d8599 (patch) | |
| tree | 62190b9e91a164a3df6a69817012260e02f96838 /src/ui/tool/path-manipulator.cpp | |
| parent | Update to trunk (diff) | |
| download | inkscape-30858428c74d1fa0f119f40b99fa5e51836d8599.tar.gz inkscape-30858428c74d1fa0f119f40b99fa5e51836d8599.zip | |
Change width only for selected nodes by widget
(bzr r11950.1.83)
Diffstat (limited to 'src/ui/tool/path-manipulator.cpp')
| -rw-r--r-- | src/ui/tool/path-manipulator.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/ui/tool/path-manipulator.cpp b/src/ui/tool/path-manipulator.cpp index be5514e1f..6cad60fee 100644 --- a/src/ui/tool/path-manipulator.cpp +++ b/src/ui/tool/path-manipulator.cpp @@ -1248,8 +1248,22 @@ Geom::Point PathManipulator::BSplineHandleReposition(Handle *h,double pos){ } void PathManipulator::BSplineNodeHandlesReposition(Node *n){ - n->front()->setPosition(BSplineHandleReposition(n->front(),n->bsplineWeight)); - n->back()->setPosition(BSplineHandleReposition(n->back(),n->bsplineWeight)); + if(n->selected()){ + Node * nextNode = n->nodeToward(n->front()); + Node * prevNode = n->nodeToward(n->back()); + double prevPos = 0; + double nextPos = 0; + if(prevNode) + prevPos = BSplineHandlePosition(prevNode->front()); + if(nextNode) + nextPos = BSplineHandlePosition(nextNode->back()); + n->front()->setPosition(BSplineHandleReposition(n->front(),n->bsplineWeight)); + n->back()->setPosition(BSplineHandleReposition(n->back(),n->bsplineWeight)); + if(prevNode) + prevNode->front()->setPosition(BSplineHandleReposition(prevNode->front(),prevPos)); + if(nextNode) + nextNode->back()->setPosition(BSplineHandleReposition(nextNode->back(),nextPos)); + } } /** Construct the geometric representation of nodes and handles, update the outline |
