static void contact_widget_set_contact (EmpathyContactWidget *information, EmpathyContact *contact) { if (contact == information->contact) return; contact_widget_remove_contact (information); if (contact) { TpConnection *connection; connection = empathy_contact_get_connection (contact); information->contact = g_object_ref (contact); information->factory = empathy_tp_contact_factory_dup_singleton (connection); } /* set the selected account to be the account this contact came from */ if (contact && EMPATHY_IS_ACCOUNT_CHOOSER (information->widget_account)) { empathy_account_chooser_set_account ( EMPATHY_ACCOUNT_CHOOSER (information->widget_account), empathy_contact_get_account (contact)); } /* Update information for widgets */ contact_widget_contact_update (information); contact_widget_groups_update (information); contact_widget_details_update (information); contact_widget_client_update (information); contact_widget_location_update (information); }
static void contact_widget_destroy_cb (GtkWidget *widget, EmpathyContactWidget *information) { contact_widget_remove_contact (information); if (information->widget_id_timeout != 0) { g_source_remove (information->widget_id_timeout); } if (information->manager) { g_object_unref (information->manager); } g_slice_free (EmpathyContactWidget, information); }
static void contact_widget_destroy_cb (GtkWidget *widget, EmpathyContactWidget *information) { contact_widget_remove_contact (information); if (information->widget_id_timeout != 0) { g_source_remove (information->widget_id_timeout); } if (information->fav_sig_id != 0) g_signal_handler_disconnect (information->manager, information->fav_sig_id); g_object_unref (information->manager); g_slice_free (EmpathyContactWidget, information); }
static void contact_widget_set_contact (EmpathyContactWidget *information, EmpathyContact *contact) { if (contact == information->contact) return; contact_widget_remove_contact (information); if (contact) { TpConnection *connection; connection = empathy_contact_get_connection (contact); information->contact = g_object_ref (contact); information->factory = empathy_tp_contact_factory_dup_singleton (connection); } /* Update information for widgets */ contact_widget_contact_update (information); contact_widget_groups_update (information); contact_widget_details_update (information); contact_widget_client_update (information); contact_widget_location_update (information); }