From fef139be648e19892c41dc56e1a38b8640143d90 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Mon, 4 Dec 2023 21:45:13 +1030 Subject: [PATCH] Split calc_valp() into calc_valp() and calc_valp_log() gtk_dial_drag_gesture_begin() needs a linear calc_valp(). --- src/gtkdial.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gtkdial.c b/src/gtkdial.c index 931b06b..27a292e 100644 --- a/src/gtkdial.c +++ b/src/gtkdial.c @@ -140,6 +140,11 @@ static void dial_measure(GtkWidget *widget, #define DRAG_FACTOR 0.5 static inline double calc_valp(double val, double mn, double mx) +{ + return (val - mn)/(mx-mn); +} + +static inline double calc_valp_log(double val, double mn, double mx) { if (val <= mn) return 0.0; @@ -195,7 +200,7 @@ static void get_dial_properties(GtkDial *dial, double mn = dial->adj ? gtk_adjustment_get_lower(dial->adj) : 0; double mx = dial->adj ? gtk_adjustment_get_upper(dial->adj) : 1; double value = dial->adj ? gtk_adjustment_get_value(dial->adj) : 0.25; - props->valp = calc_valp(value, mn, mx); + props->valp = calc_valp_log(value, mn, mx); double SIN = sin( (RAD_SE_DIFF2*(props->valp) ) ); double COS = cos( (RAD_SE_DIFF2*(props->valp) ) );