From 5839d46694bde06d3679148d994301299cec3f70 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 16 Jun 2023 13:58:02 -0700 Subject: [PATCH] libsysprof-gtk: draw diamonds above squares --- src/libsysprof-gtk/sysprof-mark-chart-row.c | 34 +++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/libsysprof-gtk/sysprof-mark-chart-row.c b/src/libsysprof-gtk/sysprof-mark-chart-row.c index 23c53cfa..97f0b6bf 100644 --- a/src/libsysprof-gtk/sysprof-mark-chart-row.c +++ b/src/libsysprof-gtk/sysprof-mark-chart-row.c @@ -94,22 +94,15 @@ sysprof_mark_chart_row_snapshot (GtkWidget *widget, pango_layout_set_height (layout, height * PANGO_SCALE); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); + /* First pass, draw our rectangles for duration which we + * always want in the background compared to "points" which + * are marks w/o a duration. + */ for (guint i = 0; i < n_values; i++) { const SysprofTimeSeriesValue *v = &values[i]; - if (v->begin == v->end) - { - gtk_snapshot_save (snapshot); - gtk_snapshot_translate (snapshot, - &GRAPHENE_POINT_INIT (v->begin * width, height / 2)); - gtk_snapshot_rotate (snapshot, 45.f); - gtk_snapshot_append_color (snapshot, - &red, - &GRAPHENE_RECT_INIT (-5, -5, 10, 10)); - gtk_snapshot_restore (snapshot); - } - else + if (v->begin != v->end) { graphene_rect_t rect = GRAPHENE_RECT_INIT (floorf (v->begin * width), 0, @@ -153,6 +146,23 @@ sysprof_mark_chart_row_snapshot (GtkWidget *widget, } } + for (guint i = 0; i < n_values; i++) + { + const SysprofTimeSeriesValue *v = &values[i]; + + if (v->begin == v->end) + { + gtk_snapshot_save (snapshot); + gtk_snapshot_translate (snapshot, + &GRAPHENE_POINT_INIT (v->begin * width, height / 2)); + gtk_snapshot_rotate (snapshot, 45.f); + gtk_snapshot_append_color (snapshot, + &red, + &GRAPHENE_RECT_INIT (-4, -4, 8, 8)); + gtk_snapshot_restore (snapshot); + } + } + g_object_unref (layout); }