From 62e68f72d6cc09dbc85bf82063fc3dc6c168b19a Mon Sep 17 00:00:00 2001 From: Daniel Boles Date: Sun, 23 Jul 2023 11:11:40 +0100 Subject: [PATCH] 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 --- gtk/gtkrange.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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) -- 2.30.2