[gtk+/wip/baedert/drawing: 3/3] levelbar: Don't underallocate block widgets



commit 77ffd3c2a358e80123f8ee8e4038d7bc09cced9d
Author: Timm Bäder <mail baedert org>
Date:   Thu Jun 29 15:28:47 2017 +0200

    levelbar: Don't underallocate block widgets

 gtk/gtklevelbar.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c
index 077ea00..969fe47 100644
--- a/gtk/gtklevelbar.c
+++ b/gtk/gtklevelbar.c
@@ -430,6 +430,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);
 
@@ -445,9 +446,13 @@ 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_widget_measure (self->priv->block_widget[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;
@@ -455,6 +460,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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]