+ /* Clean up any previous instance of the insensitive message */
+ g_signal_handlers_disconnect_matched (G_OBJECT (widget), G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL,
+ G_CALLBACK (show_insensitive_message), NULL);
+
+ /* We need to dup the string because the pointer might not be valid when the
+ insensitive-press signal callback is executed */
+ g_object_set_qdata_full (G_OBJECT (widget), hildon_helper_insensitive_message_quark (),
+ (gpointer)g_strdup (message),
+ g_free);
+
+ if (message != NULL) {
+ g_signal_connect (G_OBJECT (widget), "insensitive-press",
+ G_CALLBACK (show_insensitive_message), NULL);
+ }