app: make the new rounding code in GimpSpinScale less totally stupid

This commit is contained in:
Michael Natterer
2014-06-19 18:56:43 +02:00
parent be80f49018
commit 5a4e9d0e03

View File

@ -623,13 +623,21 @@ gimp_spin_scale_change_value (GtkWidget *widget,
digits = gtk_spin_button_get_digits (spin_button); digits = gtk_spin_button_get_digits (spin_button);
if (digits > 0)
{
gint power = 1;
while (digits--)
power *= 10;
/* round the value to the possible precision of the spinbutton, so /* round the value to the possible precision of the spinbutton, so
* a focus-out will not change the value again, causing inadvertend * a focus-out will not change the value again, causing inadvertend
* adjustment signals. * adjustment signals.
*/ */
value *= powl (10, digits); value *= power;
value = RINT (value); value = RINT (value);
value /= powl (10, digits); value /= power;
}
gtk_adjustment_set_value (adjustment, value); gtk_adjustment_set_value (adjustment, value);
} }