From 5a4e9d0e03e853caa618e465973c474685457f31 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 19 Jun 2014 18:56:43 +0200 Subject: [PATCH] app: make the new rounding code in GimpSpinScale less totally stupid --- app/widgets/gimpspinscale.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/app/widgets/gimpspinscale.c b/app/widgets/gimpspinscale.c index 25d3e5b269..c1a90caa8b 100644 --- a/app/widgets/gimpspinscale.c +++ b/app/widgets/gimpspinscale.c @@ -623,13 +623,21 @@ gimp_spin_scale_change_value (GtkWidget *widget, digits = gtk_spin_button_get_digits (spin_button); - /* round the value to the possible precision of the spinbutton, so - * a focus-out will not change the value again, causing inadvertend - * adjustment signals. - */ - value *= powl (10, digits); - value = RINT (value); - value /= powl (10, digits); + if (digits > 0) + { + gint power = 1; + + while (digits--) + power *= 10; + + /* round the value to the possible precision of the spinbutton, so + * a focus-out will not change the value again, causing inadvertend + * adjustment signals. + */ + value *= power; + value = RINT (value); + value /= power; + } gtk_adjustment_set_value (adjustment, value); }