summaryrefslogtreecommitdiffstats
path: root/src/draw-context.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-02-28 03:43:21 +0000
committerJabiertxo Arraiza Zenotz <jtx@jtx.marker.es>2013-02-28 03:43:21 +0000
commitecc57932f1e7d157950ada2901f6ea6f3acc8aad (patch)
treea709f96bc323c5e7b69d09ece12aefebfb0e14d8 /src/draw-context.cpp
parentBSpline refactor (diff)
downloadinkscape-ecc57932f1e7d157950ada2901f6ea6f3acc8aad.tar.gz
inkscape-ecc57932f1e7d157950ada2901f6ea6f3acc8aad.zip
Fixed closed pc->ea
(bzr r11950.1.40)
Diffstat (limited to 'src/draw-context.cpp')
-rw-r--r--src/draw-context.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/draw-context.cpp b/src/draw-context.cpp
index 8da39b027..dcd0fc7ec 100644
--- a/src/draw-context.cpp
+++ b/src/draw-context.cpp
@@ -561,7 +561,15 @@ void spdc_concat_colors_and_flush(SPDrawContext *dc, gboolean forceclosed)
dc->sa->curve->append_continuous(c, 0.0625);
c->unref();
dc->sa->curve->closepath_current();
- spdc_flush_white(dc, NULL);
+ //BSpline
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if(prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 1 ||
+ prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 2){
+ dc->white_curves = g_slist_remove(dc->white_curves, dc->sa->curve);
+ spdc_flush_white(dc, dc->sa->curve);
+ }else
+ //BSpline End
+ spdc_flush_white(dc, NULL);
return;
}
@@ -687,6 +695,18 @@ SPDrawAnchor *spdc_test_inside(SPDrawContext *dc, Geom::Point p)
}
}
+ //BSpline
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if((prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 1 ||
+ prefs->getInt(tool_name(dc) + "/freehand-mode", 0) == 2) &&
+ dc->sa && !dc->red_curve->is_empty() && !dc->green_anchor){
+ if(active){
+ active->curve = dc->sa->curve;
+ active->curve->ref();
+ }
+ }
+ //BSpline End
+
return active;
}