summaryrefslogtreecommitdiffstats
path: root/src/ui/tool/node.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-01-09 16:46:40 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-01-09 16:46:40 +0000
commit0b15b05d641661e6b1d5cb73520c7cdead1cfc89 (patch)
tree9e6b346f78c3df0398ae333a1594b62154727210 /src/ui/tool/node.cpp
parentupdate to trunk (diff)
downloadinkscape-0b15b05d641661e6b1d5cb73520c7cdead1cfc89.tar.gz
inkscape-0b15b05d641661e6b1d5cb73520c7cdead1cfc89.zip
Fix a bug whith oposite handles on node move,and a little cleanup
(bzr r11950.1.232)
Diffstat (limited to 'src/ui/tool/node.cpp')
-rw-r--r--src/ui/tool/node.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/ui/tool/node.cpp b/src/ui/tool/node.cpp
index 39b21ae6d..63556e499 100644
--- a/src/ui/tool/node.cpp
+++ b/src/ui/tool/node.cpp
@@ -170,7 +170,6 @@ void Handle::move(Geom::Point const &new_pos)
//spanish: mueve el tirador y su opuesto la misma proporción
if(_pm().isBSpline){
setPosition(_pm().BSplineHandleReposition(this));
- _parent->bsplineWeight = _pm().BSplineHandlePosition(this);
this->other()->setPosition(_pm().BSplineHandleReposition(this->other(),_parent->bsplineWeight));
}
return;
@@ -188,7 +187,6 @@ void Handle::move(Geom::Point const &new_pos)
//spanish: mueve el tirador y su opuesto la misma proporción
if(_pm().isBSpline){
setPosition(_pm().BSplineHandleReposition(this));
- _parent->bsplineWeight = _pm().BSplineHandlePosition(this);
this->other()->setPosition(_pm().BSplineHandleReposition(this->other(),_parent->bsplineWeight));
}
@@ -215,7 +213,6 @@ void Handle::move(Geom::Point const &new_pos)
//spanish: mueve el tirador y su opuesto la misma proporción
if(_pm().isBSpline){
setPosition(_pm().BSplineHandleReposition(this));
- _parent->bsplineWeight = _pm().BSplineHandlePosition(this);
this->other()->setPosition(_pm().BSplineHandleReposition(this->other(),_parent->bsplineWeight));
}
@@ -310,7 +307,6 @@ bool Handle::_eventHandler(Inkscape::UI::Tools::ToolBase *event_context, GdkEven
void Handle::handle_2button_press(){
if(_pm().isBSpline){
setPosition(_pm().BSplineHandleReposition(this,0.3334));
- _parent->bsplineWeight = 0.3334;
this->other()->setPosition(_pm().BSplineHandleReposition(this->other(),_parent->bsplineWeight));
_pm().update();
}
@@ -764,8 +760,14 @@ void Node::showHandles(bool v)
//Cada vez que actuemos sobre dichos tiradores en un trazado
//bspline esta fuerza se tiene que actualizar
this->bsplineWeight = 0.0000;
- if(_pm().isBSpline && (!_front.isDegenerate() || !_back.isDegenerate()))
- this->bsplineWeight = 0.3334;
+ if(_pm().isBSpline && (!_front.isDegenerate() || !_back.isDegenerate())){
+ if (!_front.isDegenerate()) {
+ _pm().BSplineHandlePosition(&_front);
+ }
+ if (!_back.isDegenerate()) {
+ _pm().BSplineHandlePosition(&_back);
+ }
+ }
}
void Node::updateHandles()
@@ -1125,9 +1127,9 @@ void Node::_setState(State state)
//spanish: esto muestra los tiradores al seleccionar los nodos
if(_pm().isBSpline){
if(!this->back()->isDegenerate()){
- this->bsplineWeight = _pm().BSplineHandlePosition(this->back());
+ _pm().BSplineHandlePosition(this->back());
}else if (!this->front()->isDegenerate()){
- this->bsplineWeight = _pm().BSplineHandlePosition(this->front());
+ _pm().BSplineHandlePosition(this->front());
}else{
this->bsplineWeight = 0.0000;
}