+2004-07-16 Sivaiah Nallagatla <snallagatla@novell.com>
+
+ * libedataserver/e-source-group.c (e_source_group_remove_source)
+ (e_source_group_remove_source) : disconnet the signal
+ handler registered on source object for CHANGED singal
+ as we may not be interested in the changes in source once
+ it is removed form the group
+
2004-07-12 Chris Toshok <toshok@ximian.com>
[ most likely fixes #57999 ]
for (p = group->priv->sources; p != NULL; p = p->next) {
if (E_SOURCE (p->data) == source) {
group->priv->sources = g_slist_remove_link (group->priv->sources, p);
+ g_signal_handlers_disconnect_by_func (source,
+ G_CALLBACK (source_changed_callback),
+ group);
g_signal_emit (group, signals[SOURCE_REMOVED], 0, source);
g_signal_emit (group, signals[CHANGED], 0);
return TRUE;
if (strcmp (e_source_peek_uid (source), uid) == 0) {
group->priv->sources = g_slist_remove_link (group->priv->sources, p);
+ g_signal_handlers_disconnect_by_func (source,
+ G_CALLBACK (source_changed_callback),
+ group);
g_signal_emit (group, signals[SOURCE_REMOVED], 0, source);
g_signal_emit (group, signals[CHANGED], 0);
return TRUE;