[gtk+/gtk-3-22] levelbar: Don't underallocate block widgets



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

    levelbar: Don't underallocate block widgets
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783649

 gtk/gtklevelbar.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c
index 7fc1279..47ec1ca 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;


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