summaryrefslogtreecommitdiffstats
path: root/src/ui/tool/node.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-03-05 21:51:31 +0000
committerJabiertxo Arraiza Zenotz <jtx@jtx.marker.es>2013-03-05 21:51:31 +0000
commit93394bdda7e0c876eafe9847a01c6d91e0dc0f7a (patch)
tree257c35dee7aa5764dee64e50a884688a2873c3ac /src/ui/tool/node.cpp
parentrefactor bsplineSpirolive (diff)
downloadinkscape-93394bdda7e0c876eafe9847a01c6d91e0dc0f7a.tar.gz
inkscape-93394bdda7e0c876eafe9847a01c6d91e0dc0f7a.zip
BPower for testing.
(bzr r11950.1.45)
Diffstat (limited to 'src/ui/tool/node.cpp')
-rw-r--r--src/ui/tool/node.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/ui/tool/node.cpp b/src/ui/tool/node.cpp
index 4cac0e543..e7d62d619 100644
--- a/src/ui/tool/node.cpp
+++ b/src/ui/tool/node.cpp
@@ -142,8 +142,14 @@ void Handle::move(Geom::Point const &new_pos)
Handle *h2 = NULL;
if(_pm().isBSpline()){
isBSpline = true;
- if(!_parent->selected())
- _parent->_selection.insert(_parent);
+ typedef ControlPointSelection::Set Set;
+ Set &nodes = _parent->_selection.allPoints();
+ for (Set::iterator i = nodes.begin(); i != nodes.end(); ++i) {
+ Node *n = static_cast<Node*>(*i);
+ _parent->_selection.erase(n);
+ }
+ //if(!_parent->selected())
+ _parent->_selection.insert(_parent);
}
//BSpline End
@@ -596,10 +602,12 @@ void Node::move(Geom::Point const &new_pos)
//BSpline End
setPosition(new_pos);
//BSpline
- if(prevNode)
- prevNode->front()->setPosition(_pm().BSplineHandleReposition(prevNode->front(),prevPos));
- if(nextNode)
- nextNode->back()->setPosition(_pm().BSplineHandleReposition(nextNode->back(),nextPos));
+ if(_pm().isBSpline()){
+ if(prevNode)
+ prevNode->front()->setPosition(_pm().BSplineHandleReposition(prevNode->front(),prevPos));
+ if(nextNode)
+ nextNode->back()->setPosition(_pm().BSplineHandleReposition(nextNode->back(),nextPos));
+ }
//BSpline End
_front.setPosition(_front.position() + delta);
_back.setPosition(_back.position() + delta);