From: Daniel Boles Date: Sun, 23 Jul 2023 10:11:40 +0000 (+0100) Subject: Range: Fix hilight not drawn to value if page-size X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~33^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=62e68f72d6cc09dbc85bf82063fc3dc6c168b19a;p=gtk4.git Range: Fix hilight not drawn to value if page-size If we have a non-zero Adjustment:page-size, the actual amount we draw is reduced by that page-size. We account for this in various places, but we did not when deciding how far to allocate the highlight widget, so we were drawing the highlight not far enough, falling short of the value. This fixes by subtracting the page-size from the drawn range here too. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5976 --- diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index fbf750f696..51b46c2343 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -1455,18 +1455,17 @@ gtk_range_allocate_trough (GtkGizmo *gizmo, if (lower == upper) value = 0; else - value = (gtk_adjustment_get_value (priv->adjustment) - lower) / (upper - lower); + value = (gtk_adjustment_get_value (priv->adjustment) - lower) / + (upper - page_size - lower); if (priv->show_fill_level && upper - page_size - lower != 0) { double level, fill; GtkAllocation fill_alloc; - fill_alloc = (GtkAllocation) {0, 0, width, height}; level = CLAMP (priv->fill_level, lower, upper - page_size); - fill = (level - lower) / (upper - lower - page_size); if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)