g_signal_handler_disconnect (handler->obj, handler->handler_id);
}
g_object_unref (handler->obj);
+ g_free (handler->signal_name);
handler->obj = NULL;
}
g_free (handler);
if (list_item_handler->obj == handler->obj &&
!strcmp (list_item_handler->signal_name, handler->signal_name))
- return 0;
+ return FALSE;
else
- return 1;
+ return TRUE;
}
GSList *
g_signal_handler_disconnect (signal_handler->obj, signal_handler->handler_id);
/* Free the handlers */
+ g_object_unref (signal_handler->obj);
g_free (signal_handler->signal_name);
g_free (signal_handler);
g_free (tmp->signal_name);
/* Remove item from list */
return g_slist_delete_link (list, item);
}
+
+gboolean
+modest_signal_mgr_is_connected (GSList *list,
+ GObject *instance,
+ const gchar *signal_name)
+{
+ GSList *item = NULL;
+ SignalHandler *tmp = NULL;
+
+ /* Build the helper object */
+ tmp = g_new (SignalHandler, 1);
+ tmp->obj = instance;
+ tmp->signal_name = g_strdup (signal_name);
+
+ /* Find the element */
+ item = g_slist_find_custom (list, tmp, obj_in_a_signal_handler);
+
+ /* Free the handlers */
+ g_free (tmp->signal_name);
+ g_free (tmp);
+
+ return (item != NULL) ? TRUE : FALSE;
+}