From 2feac2772fe79aadd9e0811b7ff8d44c19a276a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Mon, 21 Dec 2020 08:30:51 +0100 Subject: [PATCH] layoutoverlay: Avoid adding 0 sized color nodes This way, the output node file of the listbox demo in gtk4-demo with enabled layout borders is only 3.8MB instead of 12MB. --- gtk/inspector/layoutoverlay.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/gtk/inspector/layoutoverlay.c b/gtk/inspector/layoutoverlay.c index 74f4084084..3924f03bb8 100644 --- a/gtk/inspector/layoutoverlay.c +++ b/gtk/inspector/layoutoverlay.c @@ -65,9 +65,9 @@ static void recurse_child_widgets (GtkWidget *widget, GtkSnapshot *snapshot) { - gboolean needs_clip; int width = gtk_widget_get_width (widget); int height = gtk_widget_get_height (widget); + gboolean needs_clip; GtkCssStyle *style; GtkWidget *child; GtkBorder boxes[4]; @@ -107,14 +107,18 @@ recurse_child_widgets (GtkWidget *widget, const GdkRGBA *color = &colors[i]; const GtkBorder *box = &boxes[i]; - gtk_snapshot_append_color (snapshot, color, - &GRAPHENE_RECT_INIT ( 0, - box->top, width, box->top)); - gtk_snapshot_append_color (snapshot, color, - &GRAPHENE_RECT_INIT (width, 0, box->right, height)); - gtk_snapshot_append_color (snapshot, color, - &GRAPHENE_RECT_INIT (0, height, width, box->bottom)); - gtk_snapshot_append_color (snapshot, color, - &GRAPHENE_RECT_INIT (- box->left, 0, box->left, height)); + if (box->top > 0) + gtk_snapshot_append_color (snapshot, color, + &GRAPHENE_RECT_INIT ( 0, - box->top, width, box->top)); + if (box->right > 0) + gtk_snapshot_append_color (snapshot, color, + &GRAPHENE_RECT_INIT (width, 0, box->right, height)); + if (box->bottom > 0) + gtk_snapshot_append_color (snapshot, color, + &GRAPHENE_RECT_INIT (0, height, width, box->bottom)); + if (box->left > 0) + gtk_snapshot_append_color (snapshot, color, + &GRAPHENE_RECT_INIT (- box->left, 0, box->left, height)); /* Grow box + offset */ width += box->left + box->right;