static gboolean purplerc_plugin_unload(PurplePlugin *plugin) { purple_prefs_disconnect_callback(pref_callback); return TRUE; }
static void purple_keyring_pref_disconnect(void) { g_return_if_fail(purple_keyring_pref_cbid != 0); purple_prefs_disconnect_callback(purple_keyring_pref_cbid); purple_keyring_pref_cbid = 0; }
void ap_gtk_finish () { // Kill the window and associated variables gtk_widget_destroy (dialog); dialog = NULL; message_list = NULL; ap_gtk_finish_progress_bar (AP_UPDATE_PROFILE); ap_gtk_finish_progress_bar (AP_UPDATE_STATUS); // Disconnect queue message purple_prefs_disconnect_callback (queue_pref_cb); queue_pref_cb = 0; purple_prefs_disconnect_callback (sound_pref_cb); sound_pref_cb = 0; g_hash_table_destroy (progress_bars); progress_bars = NULL; }
/* Listen for the first time the window stops being withdrawn */ static void blist_visible_cb(const char *pref, PurplePrefType type, gconstpointer value, gpointer user_data) { if(purple_prefs_get_bool(pref)) { gtk_appbar_dock(blist_ab, purple_prefs_get_int(PREF_DBLIST_SIDE)); if(purple_prefs_get_int(PREF_BLIST_ON_TOP) == BLIST_TOP_DOCKED) blist_set_ontop(TRUE); /* We only need to be notified about this once */ purple_prefs_disconnect_callback(blist_visible_cb_id); } }
static void destroy_prefs_handler(PurplePerlPrefsHandler *handler) { pref_handlers = g_slist_remove(pref_handlers, handler); if (handler->iotag > 0) purple_prefs_disconnect_callback(handler->iotag); if (handler->callback != NULL) SvREFCNT_dec(handler->callback); if (handler->data != NULL) SvREFCNT_dec(handler->data); g_free(handler); }