X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-signal-mgr.c;h=93b8851955f1f77dcc2780a6b14af859414fa28d;hb=4baf78c827370d5077abd741c85c987c1a3334fb;hp=990cedda638c8ff207dc722b18497c8abb08415c;hpb=ca75dc94db59734487ec69f5163545ce4edf0b5c;p=modest diff --git a/src/modest-signal-mgr.c b/src/modest-signal-mgr.c index 990cedd..93b8851 100644 --- a/src/modest-signal-mgr.c +++ b/src/modest-signal-mgr.c @@ -70,6 +70,7 @@ modest_signal_mgr_disconnect_all_and_destroy (GSList *lst) 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); @@ -123,3 +124,26 @@ modest_signal_mgr_disconnect (GSList *list, /* 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; +}