revealer: Use floor(), not ceil()

We use ceil() in measure(), so using it again will increase the
child's size whenever there is even a tiny rounding error.

This should also not make the size too small, because:
min = ceil(child_min * scale)
min / scale >= child_min
floor (min / scale) >= floor (child_min) = child_min
The last equality is because child_min is an integer.

Fixes #3137
This commit is contained in:
Benjamin Otte 2020-09-09 15:56:10 +02:00
parent 0ad10ccf39
commit cc58956dbb

View File

@ -491,13 +491,13 @@ gtk_revealer_size_allocate (GtkWidget *widget,
if (hscale < 1.0)
{
g_assert (vscale == 1.0);
child_width = MIN (100*width, ceil (width / hscale));
child_width = MIN (100 * width, floor (width / hscale));
child_height = height;
}
else if (vscale < 1.0)
{
child_width = width;
child_height = MIN (100*height, ceil (height / vscale));
child_height = MIN (100 * height, floor (height / vscale));
}
else
{