summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2018-02-22 17:56:49 +0100
committerTimm Bäder <mail@baedert.org>2018-02-23 10:47:05 +0100
commit1fea98093098965fe6ce9e4ea84fd2c58f21c00c (patch)
treee62e4c8ece3ed245a63d0b1b7f2add9e9fd99c98 /gtk/gtkrange.c
parent4c952da6cb1b8a8301733c297f97545d9bfa742a (diff)
downloadgtk+-1fea98093098965fe6ce9e4ea84fd2c58f21c00c.tar.gz
range: Simplify compute_slider_position
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 708ba9b141..71554ebf26 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -2570,6 +2570,9 @@ gtk_range_compute_slider_position (GtkRange *range,
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
int trough_width, trough_height;
int slider_width, slider_height, min_slider_size;
+ const double upper = gtk_adjustment_get_upper (priv->adjustment);
+ const double lower = gtk_adjustment_get_lower (priv->adjustment);
+ const double page_size = gtk_adjustment_get_page_size (priv->adjustment);
gtk_widget_measure (priv->slider_widget,
GTK_ORIENTATION_HORIZONTAL, -1,
@@ -2610,9 +2613,8 @@ gtk_range_compute_slider_position (GtkRange *range,
* total_adjustment_range) times the trough height in pixels
*/
- if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) != 0)
- height = ((bottom - top) * (gtk_adjustment_get_page_size (priv->adjustment) /
- (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment))));
+ if (upper - lower != 0)
+ height = (bottom - top) * (page_size / (upper - lower));
else
height = min_slider_size;
@@ -2624,9 +2626,8 @@ gtk_range_compute_slider_position (GtkRange *range,
y = top;
- if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) - gtk_adjustment_get_page_size (priv->adjustment) != 0)
- y += (bottom - top - height) * ((adjustment_value - gtk_adjustment_get_lower (priv->adjustment)) /
- (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) - gtk_adjustment_get_page_size (priv->adjustment)));
+ if (upper - lower - page_size != 0)
+ y += (bottom - top - height) * ((adjustment_value - lower) / (upper - lower - page_size));
y = CLAMP (y, top, bottom);
@@ -2663,9 +2664,8 @@ gtk_range_compute_slider_position (GtkRange *range,
* total_adjustment_range) times the trough width in pixels
*/
- if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) != 0)
- width = ((right - left) * (gtk_adjustment_get_page_size (priv->adjustment) /
- (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment))));
+ if (upper - lower != 0)
+ width = (right - left) * (page_size / (upper - lower));
else
width = min_slider_size;
@@ -2677,9 +2677,8 @@ gtk_range_compute_slider_position (GtkRange *range,
x = left;
- if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) - gtk_adjustment_get_page_size (priv->adjustment) != 0)
- x += (right - left - width) * ((adjustment_value - gtk_adjustment_get_lower (priv->adjustment)) /
- (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) - gtk_adjustment_get_page_size (priv->adjustment)));
+ if (upper - lower - page_size != 0)
+ x += (right - left - width) * ((adjustment_value - lower) / (upper - lower - page_size));
x = CLAMP (x, left, right);