summaryrefslogtreecommitdiffstats
path: root/src/pen-context.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-10-06 10:18:59 +0000
committerJabiertxof <jtx@jtx.marker.es>2013-10-06 10:18:59 +0000
commit3111608afecf747627810a6222cb7ca1eded6962 (patch)
tree0d343185df240f4b9945d319bc44514891fe3578 /src/pen-context.cpp
parentFix in bsplines (diff)
downloadinkscape-3111608afecf747627810a6222cb7ca1eded6962.tar.gz
inkscape-3111608afecf747627810a6222cb7ca1eded6962.zip
UX improvements
(bzr r11950.1.166)
Diffstat (limited to 'src/pen-context.cpp')
-rw-r--r--src/pen-context.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pen-context.cpp b/src/pen-context.cpp
index a9bd09c51..936afe4e0 100644
--- a/src/pen-context.cpp
+++ b/src/pen-context.cpp
@@ -1573,7 +1573,7 @@ static void bspline_spiro_motion(SPPenContext *const pc, bool shift){
using Geom::X;
using Geom::Y;
SPCurve *tmpCurve = new SPCurve();
- pc->p[2] = pc->p[3];
+ pc->p[2] = pc->p[3] + (1./3)*(pc->p[0] - pc->p[3]);
if(pc->green_curve->is_empty() && !pc->sa){
pc->p[1] = pc->p[0] + (1./3)*(pc->p[3] - pc->p[0]);
}else if(!pc->green_curve->is_empty()){
@@ -1601,6 +1601,10 @@ static void bspline_spiro_motion(SPPenContext *const pc, bool shift){
pc->p[1] = SBasisWPower.valueAt(WP);
if(!Geom::are_near(pc->p[1],pc->p[0]))
pc->p[1] = Geom::Point(pc->p[1][X] + 0.0001,pc->p[1][Y] + 0.0001);
+ if(shift)
+ pc->p[2]=pc->p[3];
+ else
+ pc->p[2] = pc->p[3] + (1./3)*(pc->p[0] - pc->p[3]);
}else{
pc->p[1] = (*cubic)[3] + (Geom::Point)((*cubic)[3] - (*cubic)[2] );
}