summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-04-18 20:26:00 +0000
committerJabiertxo Arraiza Zenotz <jtx@jtx.marker.es>2013-04-18 20:26:00 +0000
commit89922cdfe7c28fbe5f0ca6e4e0d800b5b1f49604 (patch)
tree3a4b47d67743abeeba37a843149e9d3234722db9 /src
parentBack to original colors (diff)
parentPath Union. fix for Bug 614577 (diff)
downloadinkscape-89922cdfe7c28fbe5f0ca6e4e0d800b5b1f49604.tar.gz
inkscape-89922cdfe7c28fbe5f0ca6e4e0d800b5b1f49604.zip
Striped colors and outline, fix icons.svg error,mark for merge
(bzr r11950.1.100)
Diffstat (limited to 'src')
-rw-r--r--src/display/canvas-bpath.cpp14
-rw-r--r--src/livarot/ShapeSweep.cpp8
2 files changed, 8 insertions, 14 deletions
diff --git a/src/display/canvas-bpath.cpp b/src/display/canvas-bpath.cpp
index 502bf440e..ee9e14f10 100644
--- a/src/display/canvas-bpath.cpp
+++ b/src/display/canvas-bpath.cpp
@@ -132,6 +132,7 @@ sp_canvas_bpath_render (SPCanvasItem *item, SPCanvasBuf *buf)
SPCanvasBPath *cbp = SP_CANVAS_BPATH (item);
Geom::Rect area = buf->rect;
+
if ( !cbp->curve ||
((cbp->stroke_rgba & 0xff) == 0 && (cbp->fill_rgba & 0xff) == 0 ) ||
cbp->curve->get_segment_count() < 1)
@@ -146,10 +147,9 @@ sp_canvas_bpath_render (SPCanvasItem *item, SPCanvasBuf *buf)
cairo_set_tolerance(buf->ct, 0.5);
cairo_new_path(buf->ct);
- cairo_save(buf->ct);
-
feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area,
- /* optimized_stroke = */ !dofill, 1);
+ /* optimized_stroke = */ !dofill, 1);
+
if (dofill) {
// RGB / BGR
ink_cairo_set_source_rgba32(buf->ct, cbp->fill_rgba);
@@ -159,20 +159,12 @@ sp_canvas_bpath_render (SPCanvasItem *item, SPCanvasBuf *buf)
}
if (dostroke) {
- ink_cairo_set_source_rgba32(buf->ct, 0xffffff42);
- cairo_set_line_width(buf->ct, 3);
- cairo_stroke_preserve(buf->ct);
- cairo_restore(buf->ct);
- feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area,
- /* optimized_stroke = */ !dofill, 1);
ink_cairo_set_source_rgba32(buf->ct, cbp->stroke_rgba);
cairo_set_line_width(buf->ct, 1);
if (cbp->dashes[0] != 0 && cbp->dashes[1] != 0) {
cairo_set_dash (buf->ct, cbp->dashes, 2, 0);
}
cairo_stroke(buf->ct);
-
-
} else {
cairo_new_path(buf->ct);
}
diff --git a/src/livarot/ShapeSweep.cpp b/src/livarot/ShapeSweep.cpp
index 2073d1cd2..c2fd83e31 100644
--- a/src/livarot/ShapeSweep.cpp
+++ b/src/livarot/ShapeSweep.cpp
@@ -2741,8 +2741,9 @@ Shape::CheckAdjacencies (int lastPointNo, int lastChgtPt, Shape * /*shapeHead*/,
{
if (TesteAdjacency (lS, lB, getPoint(n).x, n, false) ==
false)
- break;
- lS->swsData[lB].leftRnd = n;
+ break;
+ if (getPoint(lS->swsData[lB].leftRnd).x[0] > getPoint(n).x[0] + HalfRound (1)) // LP Bug 614577
+ lS->swsData[lB].leftRnd = n;
}
for (int n = rgtN + 1; n < lastPointNo; n++)
{
@@ -2768,7 +2769,8 @@ Shape::CheckAdjacencies (int lastPointNo, int lastChgtPt, Shape * /*shapeHead*/,
if (TesteAdjacency (rS, rB, getPoint(n).x, n, false) ==
false)
break;
- rS->swsData[rB].leftRnd = n;
+ if (getPoint(rS->swsData[rB].leftRnd).x[0] > getPoint(n).x[0] + HalfRound (1)) // LP Bug 614577
+ rS->swsData[rB].leftRnd = n;
}
for (int n = rgtN + 1; n < lastPointNo; n++)
{