libgimpwidgets, modules: improve set_color_config() functions a bit

Don't do anything if the config doesn't change.
This commit is contained in:
Michael Natterer
2016-05-31 12:24:58 +02:00
parent 77aedefc9d
commit 4ad2493283
6 changed files with 120 additions and 105 deletions

View File

@ -614,6 +614,8 @@ gimp_color_area_set_color_config (GimpColorArea *area,
priv = GET_PRIVATE (area); priv = GET_PRIVATE (area);
if (config != priv->config)
{
if (priv->config) if (priv->config)
{ {
g_signal_handlers_disconnect_by_func (priv->config, g_signal_handlers_disconnect_by_func (priv->config,
@ -639,6 +641,7 @@ gimp_color_area_set_color_config (GimpColorArea *area,
area); area);
} }
} }
}
/* private functions */ /* private functions */

View File

@ -660,6 +660,8 @@ gimp_color_scale_set_color_config (GimpColorScale *scale,
priv = GET_PRIVATE (scale); priv = GET_PRIVATE (scale);
if (config != priv->config)
{
if (priv->config) if (priv->config)
{ {
g_signal_handlers_disconnect_by_func (priv->config, g_signal_handlers_disconnect_by_func (priv->config,
@ -685,6 +687,7 @@ gimp_color_scale_set_color_config (GimpColorScale *scale,
scale); scale);
} }
} }
}
/* as in gtkrange.c */ /* as in gtkrange.c */

View File

@ -1799,6 +1799,8 @@ gimp_preview_area_set_color_config (GimpPreviewArea *area,
priv = GET_PRIVATE (area); priv = GET_PRIVATE (area);
if (config != priv->config)
{
if (priv->config) if (priv->config)
{ {
g_signal_handlers_disconnect_by_func (priv->config, g_signal_handlers_disconnect_by_func (priv->config,
@ -1824,6 +1826,7 @@ gimp_preview_area_set_color_config (GimpPreviewArea *area,
area); area);
} }
} }
}
/** /**
* gimp_preview_area_set_max_size: * gimp_preview_area_set_max_size:

View File

@ -268,13 +268,12 @@ colorsel_cmyk_set_config (GimpColorSelector *selector,
{ {
ColorselCmyk *module = COLORSEL_CMYK (selector); ColorselCmyk *module = COLORSEL_CMYK (selector);
if (config == module->config) if (config != module->config)
return; {
if (module->config) if (module->config)
{ {
g_signal_handlers_disconnect_by_func (module->config, g_signal_handlers_disconnect_by_func (module->config,
G_CALLBACK (colorsel_cmyk_config_changed), colorsel_cmyk_config_changed,
module); module);
g_object_unref (module->config); g_object_unref (module->config);
} }
@ -291,6 +290,7 @@ colorsel_cmyk_set_config (GimpColorSelector *selector,
colorsel_cmyk_config_changed (module); colorsel_cmyk_config_changed (module);
} }
}
static void static void
colorsel_cmyk_adj_update (GtkAdjustment *adj, colorsel_cmyk_adj_update (GtkAdjustment *adj,

View File

@ -230,6 +230,8 @@ colorsel_water_set_config (GimpColorSelector *selector,
{ {
ColorselWater *water = COLORSEL_WATER (selector); ColorselWater *water = COLORSEL_WATER (selector);
if (config != water->config)
{
if (water->config) if (water->config)
{ {
g_signal_handlers_disconnect_by_func (water->config, g_signal_handlers_disconnect_by_func (water->config,
@ -255,6 +257,7 @@ colorsel_water_set_config (GimpColorSelector *selector,
water); water);
} }
} }
}
static void static void
colorsel_water_config_notify (GimpColorConfig *config, colorsel_water_config_notify (GimpColorConfig *config,

View File

@ -1462,6 +1462,8 @@ gimp_color_wheel_set_color_config (GimpColorWheel *wheel,
priv = wheel->priv; priv = wheel->priv;
if (config != priv->config)
{
if (priv->config) if (priv->config)
{ {
g_signal_handlers_disconnect_by_func (priv->config, g_signal_handlers_disconnect_by_func (priv->config,
@ -1487,6 +1489,7 @@ gimp_color_wheel_set_color_config (GimpColorWheel *wheel,
wheel); wheel);
} }
} }
}
/** /**
* gimp_color_wheel_is_adjusting: * gimp_color_wheel_is_adjusting: