diff --git a/libgimpwidgets/gimpcolorselection.c b/libgimpwidgets/gimpcolorselection.c index 2383265a5a..8c7c01bb75 100644 --- a/libgimpwidgets/gimpcolorselection.c +++ b/libgimpwidgets/gimpcolorselection.c @@ -753,21 +753,15 @@ gimp_color_selection_scales_changed (GimpColorSelector *selector, GimpColorSelection *selection) { GimpColorSelectionPrivate *priv; - GeglColor *old_color; priv = gimp_color_selection_get_instance_private (selection); - old_color = priv->color; + g_object_unref (priv->color); priv->color = gegl_color_duplicate (color); - if (! gimp_color_is_perceptually_identical (priv->color, old_color)) - { - gimp_color_selection_update (selection, - UPDATE_ENTRY | UPDATE_NOTEBOOK | UPDATE_COLOR); - gimp_color_selection_color_changed (selection); - } - - g_object_unref (old_color); + gimp_color_selection_update (selection, + UPDATE_ENTRY | UPDATE_NOTEBOOK | UPDATE_COLOR); + gimp_color_selection_color_changed (selection); } static void diff --git a/libgimpwidgets/gimpcolorselector.c b/libgimpwidgets/gimpcolorselector.c index c32fc08770..6286bc7a0f 100644 --- a/libgimpwidgets/gimpcolorselector.c +++ b/libgimpwidgets/gimpcolorselector.c @@ -407,27 +407,21 @@ gimp_color_selector_set_color (GimpColorSelector *selector, { GimpColorSelectorClass *selector_class; GimpColorSelectorPrivate *priv; - GeglColor *old_color; g_return_if_fail (GIMP_IS_COLOR_SELECTOR (selector)); g_return_if_fail (GEGL_IS_COLOR (color)); priv = gimp_color_selector_get_instance_private (selector); - old_color = priv->color; + g_object_unref (priv->color); priv->color = gegl_color_duplicate (color); selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector); - if (! gimp_color_is_perceptually_identical (priv->color, old_color)) - { - if (selector_class->set_color) - selector_class->set_color (selector, priv->color); + if (selector_class->set_color) + selector_class->set_color (selector, priv->color); - gimp_color_selector_emit_color_changed (selector); - } - - g_object_unref (old_color); + gimp_color_selector_emit_color_changed (selector); } /** diff --git a/libgimpwidgets/gimplabelspin.c b/libgimpwidgets/gimplabelspin.c index e94cd9c7ba..fa5be40cfd 100644 --- a/libgimpwidgets/gimplabelspin.c +++ b/libgimpwidgets/gimplabelspin.c @@ -62,6 +62,8 @@ typedef struct _GimpLabelSpinPrivate GtkAdjustment *spin_adjustment; gint digits; + + gdouble value; } GimpLabelSpinPrivate; static void gimp_label_spin_constructed (GObject *object); @@ -216,13 +218,11 @@ gimp_label_spin_set_property (GObject *object, switch (property_id) { case PROP_VALUE: - /* Avoid looping forever since we have bound this widget's - * "value" property with the spin button "value" property. - */ - if (gtk_adjustment_get_value (priv->spin_adjustment) != g_value_get_double (value)) - gtk_adjustment_set_value (priv->spin_adjustment, g_value_get_double (value)); - - g_signal_emit (object, gimp_label_spin_signals[VALUE_CHANGED], 0); + if (priv->value != g_value_get_double (value)) + { + priv->value = g_value_get_double (value); + g_signal_emit (object, gimp_label_spin_signals[VALUE_CHANGED], 0); + } break; case PROP_LOWER: gtk_adjustment_set_lower (priv->spin_adjustment, @@ -267,7 +267,7 @@ gimp_label_spin_get_property (GObject *object, switch (property_id) { case PROP_VALUE: - g_value_set_double (value, gtk_adjustment_get_value (priv->spin_adjustment)); + g_value_set_double (value, priv->value); break; case PROP_LOWER: g_value_set_double (value, gtk_adjustment_get_lower (priv->spin_adjustment));