From: Ryan Lortie Date: Thu, 19 Jan 2012 14:01:08 +0000 (-0500) Subject: gsignal: add g_signal_handlers_disconnect_by_data X-Git-Tag: 2.31.12~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cf48434867bf6fa074f9a0a67cf03b5c2157170a;p=platform%2Fupstream%2Fglib.git gsignal: add g_signal_handlers_disconnect_by_data Similar to g_signal_handlers_disconnect_by_func() but disconnects all functions that use the given user_data. https://bugzilla.gnome.org/show_bug.cgi?id=668269 --- diff --git a/gobject/gsignal.h b/gobject/gsignal.h index 63390f5..73dcf47 100644 --- a/gobject/gsignal.h +++ b/gobject/gsignal.h @@ -472,6 +472,21 @@ void g_signal_chain_from_overridden_handler (gpointer instance, g_signal_handlers_disconnect_matched ((instance), \ (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \ 0, 0, NULL, (func), (data)) + +/** + * g_signal_handlers_disconnect_by_data: + * @instance: The instance to remove handlers from + * @data: the closure data of the handlers' closures + * + * Disconnects all handlers on an instance that match @data. + * + * Returns: The number of handlers that matched. + * + * Since: 2.32 + */ +#define g_signal_handlers_disconnect_by_data(instance, data) \ + g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, (data)) + /** * g_signal_handlers_block_by_func: * @instance: The instance to block handlers from.