summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2015-02-26 15:38:38 -0600
committerFederico Mena Quintero <federico@gnome.org>2015-02-26 15:59:11 -0600
commit310500cf1739f8e827331d822bd9f9f08f6fc2b0 (patch)
tree109ca6f1aa257d8f5619bf51395c5208bbae94eb
parent6fd7493ef2ba7ed9d8e76a3ae5b064c34825422f (diff)
downloadlibrsvg-310500cf1739f8e827331d822bd9f9f08f6fc2b0.tar.gz
bgo#745177 - Revert "RsvgPathBuilder: don't add a terminating moveto after closepath"
This reverts commit 0c98142e31cdc91963860f99ec933e52f3cc63c6. This was causing bug https://bugzilla.gnome.org/show_bug.cgi?id=745177
-rw-r--r--rsvg-path.c9
-rw-r--r--rsvg-path.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/rsvg-path.c b/rsvg-path.c
index 5436d0d2..56a5b962 100644
--- a/rsvg-path.c
+++ b/rsvg-path.c
@@ -77,6 +77,7 @@ rsvg_path_builder_init (RsvgPathBuilder *builder,
int n_elements)
{
builder->path_data = g_array_sized_new (FALSE, FALSE, sizeof (cairo_path_data_t), n_elements);
+ builder->last_move_to_index = -1;
}
void
@@ -91,6 +92,7 @@ rsvg_path_builder_move_to (RsvgPathBuilder *builder,
data.header.type = CAIRO_PATH_MOVE_TO;
data.header.length = 2;
rsvg_path_builder_add_element (builder, &data);
+ builder->last_move_to_index = builder->path_data->len - 1;
data.point.x = x;
data.point.y = y;
@@ -151,6 +153,13 @@ rsvg_path_builder_close_path (RsvgPathBuilder *builder)
data.header.type = CAIRO_PATH_CLOSE_PATH;
data.header.length = 1;
rsvg_path_builder_add_element (builder, &data);
+
+ /* Add a 'move-to' element */
+ if (builder->last_move_to_index >= 0) {
+ cairo_path_data_t *moveto = &g_array_index (builder->path_data, cairo_path_data_t, builder->last_move_to_index);
+
+ rsvg_path_builder_move_to (builder, moveto[1].point.x, moveto[1].point.y);
+ }
}
cairo_path_t *
diff --git a/rsvg-path.h b/rsvg-path.h
index 11112b58..4d151f08 100644
--- a/rsvg-path.h
+++ b/rsvg-path.h
@@ -34,6 +34,7 @@ G_BEGIN_DECLS
typedef struct {
GArray *path_data;
+ int last_move_to_index;
} RsvgPathBuilder;
G_GNUC_INTERNAL