diff --git a/libgimpwidgets/gimppropwidgets.c b/libgimpwidgets/gimppropwidgets.c index ed6fef3c44..ce320a40db 100644 --- a/libgimpwidgets/gimppropwidgets.c +++ b/libgimpwidgets/gimppropwidgets.c @@ -3155,12 +3155,21 @@ gimp_prop_coordinates_notify_x (GObject *config, if (value != gimp_size_entry_get_refval (entry, 0)) { + gdouble *old_x_value = g_object_get_data (G_OBJECT (entry), + "old-x-value"); + g_signal_handlers_block_by_func (entry, gimp_prop_coordinates_callback, config); gimp_size_entry_set_refval (entry, 0, value); + if (old_x_value) + *old_x_value = value; + + g_signal_emit_by_name (entry, "value-changed", + gimp_size_entry_get_value (entry, 0)); + g_signal_handlers_unblock_by_func (entry, gimp_prop_coordinates_callback, config); @@ -3193,12 +3202,21 @@ gimp_prop_coordinates_notify_y (GObject *config, if (value != gimp_size_entry_get_refval (entry, 1)) { + gdouble *old_y_value = g_object_get_data (G_OBJECT (entry), + "old-y-value"); + g_signal_handlers_block_by_func (entry, gimp_prop_coordinates_callback, config); gimp_size_entry_set_refval (entry, 1, value); + if (old_y_value) + *old_y_value = value; + + g_signal_emit_by_name (entry, "value-changed", + gimp_size_entry_get_value (entry, 1)); + g_signal_handlers_unblock_by_func (entry, gimp_prop_coordinates_callback, config);