summaryrefslogtreecommitdiffstats
path: root/src/marker.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-08-11 22:40:33 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-08-11 22:40:33 +0000
commit2eceacbf55b5796e4449fb3efc85cffdf5b6303c (patch)
tree1b239420000898525e45c9e1326c50eaee36fb67 /src/marker.cpp
parentFix rendering of masks with non-opaque alpha channel (diff)
downloadinkscape-2eceacbf55b5796e4449fb3efc85cffdf5b6303c.tar.gz
inkscape-2eceacbf55b5796e4449fb3efc85cffdf5b6303c.zip
Fix rendering failures caused by markers with markerUnits="strokeWidth"
on shapes with zero stroke width (bzr r9508.1.56)
Diffstat (limited to 'src/marker.cpp')
-rw-r--r--src/marker.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/marker.cpp b/src/marker.cpp
index 6917c0b71..f89dd2bc0 100644
--- a/src/marker.cpp
+++ b/src/marker.cpp
@@ -614,6 +614,13 @@ sp_marker_show_instance ( SPMarker *marker, NRArenaItem *parent,
unsigned int key, unsigned int pos,
Geom::Matrix const &base, float linewidth)
{
+ // do not show marker if linewidth == 0 and markerUnits == strokeWidth
+ // otherwise Cairo will fail to render anything on the tile
+ // that contains the "degenerate" marker
+ if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH && linewidth == 0) {
+ return NULL;
+ }
+
for (SPMarkerView *v = marker->views; v != NULL; v = v->next) {
if (v->key == key) {
if (pos >= v->items.size()) {