summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-07-10 22:58:49 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-07-10 22:58:49 +0000
commite45d61d03281d9103b3b8daf40b84e6f415eadc4 (patch)
tree7bd0b39b979a7e5990f3b19358689ef553dce1b7 /src
parentForce PNG bitmap export to always write with PNG extension (diff)
downloadinkscape-e45d61d03281d9103b3b8daf40b84e6f415eadc4.tar.gz
inkscape-e45d61d03281d9103b3b8daf40b84e6f415eadc4.zip
Fix a bug continuing a bezier path whith a LPE one like spiro or bspline
(bzr r14239)
Diffstat (limited to 'src')
-rw-r--r--src/ui/tools/freehand-base.cpp7
-rw-r--r--src/ui/tools/pen-tool.cpp21
2 files changed, 18 insertions, 10 deletions
diff --git a/src/ui/tools/freehand-base.cpp b/src/ui/tools/freehand-base.cpp
index e8cbfcdbf..4fad06c98 100644
--- a/src/ui/tools/freehand-base.cpp
+++ b/src/ui/tools/freehand-base.cpp
@@ -598,9 +598,10 @@ void spdc_concat_colors_and_flush(FreehandBase *dc, gboolean forceclosed)
if(prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 1 ||
prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 2){
s = dc->overwrite_curve;
- }
- if (dc->sa->start) {
- s = reverse_then_unref(s);
+ } else {
+ if (dc->sa->start) {
+ s = reverse_then_unref(s);
+ }
}
s->append_continuous(c, 0.0625);
c->unref();
diff --git a/src/ui/tools/pen-tool.cpp b/src/ui/tools/pen-tool.cpp
index 38892517d..827dbf5c3 100644
--- a/src/ui/tools/pen-tool.cpp
+++ b/src/ui/tools/pen-tool.cpp
@@ -1351,8 +1351,9 @@ void PenTool::_bsplineSpiroColor()
void PenTool::_bsplineSpiro(bool shift)
{
- if(!this->spiro && !this->bspline)
+ if(!this->spiro && !this->bspline){
return;
+ }
shift?this->_bsplineSpiroOff():this->_bsplineSpiroOn();
this->_bsplineSpiroBuild();
@@ -1413,13 +1414,19 @@ void PenTool::_bsplineSpiroStartAnchor(bool shift)
}else{
this->spiro = false;
}
- if(!this->spiro && !this->bspline)
+ if(!this->spiro && !this->bspline){
+ SPCurve *tmp_curve = this->sa->curve->copy();
+ if (this->sa->start) {
+ tmp_curve = tmp_curve ->create_reverse();
+ }
+ this->overwrite_curve = tmp_curve ;
return;
-
- if(shift)
+ }
+ if(shift){
this->_bsplineSpiroStartAnchorOff();
- else
+ } else {
this->_bsplineSpiroStartAnchorOn();
+ }
}
void PenTool::_bsplineSpiroStartAnchorOn()
@@ -1482,9 +1489,9 @@ void PenTool::_bsplineSpiroStartAnchorOff()
}
void PenTool::_bsplineSpiroMotion(bool shift){
- if(!this->spiro && !this->bspline)
+ if(!this->spiro && !this->bspline){
return;
-
+ }
using Geom::X;
using Geom::Y;
if(this->red_curve->is_empty()) return;