app: make GimpSpinScale's slow part change the value 10x slower than the fast part

This commit is contained in:
Michael Natterer
2011-03-18 15:42:50 +01:00
parent f1d1bb610d
commit 61aa1854fd

View File

@ -321,14 +321,14 @@ gimp_spin_scale_get_target (GtkWidget *widget,
}
static void
gimp_spin_scale_set_value (GtkWidget *widget,
gimp_spin_scale_change_value (GtkWidget *widget,
gdouble x)
{
GimpSpinScalePrivate *private = GET_PRIVATE (widget);
GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
GtkAdjustment *adjustment = gtk_spin_button_get_adjustment (spin_button);
GdkWindow *text_window = gtk_entry_get_text_window (GTK_ENTRY (widget));
gint width;
gdouble fraction;
gdouble value;
#if GTK_CHECK_VERSION (2, 24, 0)
@ -337,29 +337,29 @@ gimp_spin_scale_set_value (GtkWidget *widget,
gdk_drawable_get_size (text_window, &width, NULL);
#endif
if (private->relative_change)
{
gdouble diff;
gdouble step;
step = ((gtk_adjustment_get_upper (adjustment) -
gtk_adjustment_get_lower (adjustment)) +
gtk_adjustment_get_lower (adjustment)) / width / 10.0;
diff = x - private->start_x;
value = (private->start_value + diff * step);
}
else
{
gdouble fraction;
fraction = x / (gdouble) width;
value = (fraction * (gtk_adjustment_get_upper (adjustment) -
gtk_adjustment_get_lower (adjustment)) +
gtk_adjustment_get_lower (adjustment));
gtk_adjustment_set_value (adjustment, value);
}
static void
gimp_spin_scale_change_value (GtkWidget *widget,
gdouble x)
{
GimpSpinScalePrivate *private = GET_PRIVATE (widget);
GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
GtkAdjustment *adjustment = gtk_spin_button_get_adjustment (spin_button);
gdouble diff;
gdouble value;
diff = x - private->start_x;
value = (private->start_value +
diff * gtk_adjustment_get_step_increment (adjustment));
}
gtk_adjustment_set_value (adjustment, value);
}
@ -382,7 +382,7 @@ gimp_spin_scale_button_press (GtkWidget *widget,
gtk_widget_grab_focus (widget);
gimp_spin_scale_set_value (widget, event->x);
gimp_spin_scale_change_value (widget, event->x);
return TRUE;
@ -415,14 +415,7 @@ gimp_spin_scale_button_release (GtkWidget *widget,
{
private->changing_value = FALSE;
if (private->relative_change)
{
gimp_spin_scale_change_value (widget, event->x);
}
else
{
gimp_spin_scale_set_value (widget, event->x);
}
return TRUE;
}
@ -437,15 +430,8 @@ gimp_spin_scale_button_motion (GtkWidget *widget,
GimpSpinScalePrivate *private = GET_PRIVATE (widget);
if (private->changing_value)
{
if (private->relative_change)
{
gimp_spin_scale_change_value (widget, event->x);
}
else
{
gimp_spin_scale_set_value (widget, event->x);
}
return TRUE;
}