[dia] svg: write Dia's only fill-rule used



commit ddca5a3b4ca0ce7b11884c5fd79f5dc64ab14c8a
Author: Hans Breuer <hans breuer org>
Date:   Sun Aug 4 14:34:57 2013 +0200

    svg: write Dia's only fill-rule used
    
    Still ignored on load in dia_svg_parse_style*() and svg-import.
    Implementing fill-rule="nonzero" would either require an extension
    to the renderer interface and the poly and bezier objects or at
    least some more post-processing after dia_svg_parse_path().

 lib/diasvgrenderer.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/lib/diasvgrenderer.c b/lib/diasvgrenderer.c
index 4c2b9a1..953d172 100644
--- a/lib/diasvgrenderer.c
+++ b/lib/diasvgrenderer.c
@@ -352,6 +352,7 @@ fill_polygon(DiaRenderer *self,
   node = xmlNewChild(renderer->root, renderer->svg_name_space, (const xmlChar *)"polygon", NULL);
   
   xmlSetProp(node, (const xmlChar *)"style", (xmlChar *) get_fill_style(renderer, colour));
+  xmlSetProp(node, (const xmlChar *)"fill-rule", (const xmlChar *) "evenodd");
 
   str = g_string_new(NULL);
   for (i = 0; i < num_points; i++)
@@ -599,8 +600,10 @@ _bezier(DiaRenderer *self,
                        dia_svg_dtostr(p3y_buf, (gdouble) points[i].p3.y) );
       break;
     }
-  if (fill)
+  if (fill) {
+    xmlSetProp(node, (const xmlChar *)"fill-rule", (const xmlChar *) "evenodd");
     g_string_append(str, "z");
+  }
   xmlSetProp(node, (const xmlChar *)"d", (xmlChar *) str->str);
   g_string_free(str, TRUE);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]