aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ld-canvas.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ld-canvas.c b/src/ld-canvas.c
index bacef26..2ea676a 100644
--- a/src/ld-canvas.c
+++ b/src/ld-canvas.c
@@ -1246,18 +1246,18 @@ draw_terminal (GtkWidget *widget, DrawData *data)
static void
draw_diagram (GtkWidget *widget, DrawData *data)
{
- GList *objects;
+ GList *objects, *iter;
if (!data->self->priv->diagram)
return;
cairo_save (data->cr);
-
cairo_set_line_width (data->cr, 1 / data->scale);
- /* Draw objects from the diagram. */
- objects = ld_diagram_get_objects (data->self->priv->diagram);
- g_list_foreach (objects, (GFunc) draw_object, data);
+ /* Draw objects from the diagram, from bottom to top. */
+ objects = (GList *) ld_diagram_get_objects (data->self->priv->diagram);
+ for (iter = g_list_last (objects); iter; iter = g_list_previous (iter))
+ draw_object (LD_DIAGRAM_OBJECT (iter->data), data);
switch (data->self->priv->operation)
{