adjustment: Split out a function
authorBenjamin Otte <otte@redhat.com>
Thu, 20 Apr 2023 16:52:49 +0000 (18:52 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 20 Apr 2023 21:33:28 +0000 (23:33 +0200)
gtk/gtkadjustment.c

index 1e0bae6f6b3b2e241a9497da4b6d8442e71a8ed4..2516d43cfd9589d5790ca5ac3f681f9c0d9d2406 100644 (file)
@@ -352,6 +352,21 @@ gtk_adjustment_dispatch_properties_changed (GObject     *object,
     }
 }
 
+static double
+gtk_adjustment_sanitize_value (GtkAdjustment *self,
+                               double         value)
+{
+  GtkAdjustmentPrivate *priv = gtk_adjustment_get_instance_private (self);
+
+  /* don't use CLAMP() so we don't end up below lower if upper - page_size
+   * is smaller than lower
+   */
+  value = MIN (value, priv->upper - priv->page_size);
+  value = MAX (value, priv->lower);
+
+  return value;
+}
+
 /**
  * gtk_adjustment_new:
  * @value: the initial value
@@ -497,11 +512,7 @@ gtk_adjustment_set_value_internal (GtkAdjustment *adjustment,
 {
   GtkAdjustmentPrivate *priv = gtk_adjustment_get_instance_private (adjustment);
 
-  /* don't use CLAMP() so we don't end up below lower if upper - page_size
-   * is smaller than lower
-   */
-  value = MIN (value, priv->upper - priv->page_size);
-  value = MAX (value, priv->lower);
+  value = gtk_adjustment_sanitize_value (adjustment, value);
 
   if (animate && priv->duration != 0 && priv->clock != NULL)
     {
@@ -825,11 +836,7 @@ gtk_adjustment_configure (GtkAdjustment *adjustment,
   gtk_adjustment_set_page_increment (adjustment, page_increment);
   gtk_adjustment_set_page_size (adjustment, page_size);
 
-  /* don't use CLAMP() so we don't end up below lower if upper - page_size
-   * is smaller than lower
-   */
-  value = MIN (value, upper - page_size);
-  value = MAX (value, lower);
+  value = gtk_adjustment_sanitize_value (adjustment, value);
 
   if (value != priv->value)
     {