forked from AuroraMiddleware/gtk
levelbar: Don't underallocate block widgets
https://bugzilla.gnome.org/show_bug.cgi?id=783649
This commit is contained in:
parent
46a8559cd4
commit
78b4885fe8
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user