From 78b4885fe8850e132d8bb06df8ab90ac6c2033e0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Thu, 29 Jun 2017 15:28:47 +0200 Subject: [PATCH] levelbar: Don't underallocate block widgets https://bugzilla.gnome.org/show_bug.cgi?id=783649 --- gtk/gtklevelbar.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c index 7fc12794c4..47ec1ca9c3 100644 --- a/gtk/gtklevelbar.c +++ b/gtk/gtklevelbar.c @@ -458,6 +458,7 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, GtkAllocation block_area, clip; gdouble fill_percentage; gboolean inverted; + int block_min; inverted = gtk_level_bar_get_real_inverted (self); @@ -473,9 +474,15 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, fill_percentage = (self->priv->cur_value - self->priv->min_value) / (self->priv->max_value - self->priv->min_value); + gtk_css_gadget_get_preferred_size (self->priv->block_gadget[inverted ? 1 : 0], + self->priv->orientation, -1, + &block_min, NULL, + NULL, NULL); + if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL) { block_area.width = (gint) floor (block_area.width * fill_percentage); + block_area.width = MAX (block_area.width, block_min); if (inverted) block_area.x += allocation->width - block_area.width; @@ -483,6 +490,7 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, else { block_area.height = (gint) floor (block_area.height * fill_percentage); + block_area.height = MAX (block_area.height, block_min); if (inverted) block_area.y += allocation->height - block_area.height; -- 2.30.2