diff options
-rw-r--r-- | libempathy-gtk/empathy-contact-list-view.c | 7 | ||||
-rw-r--r-- | libempathy-gtk/empathy-contact-menu.c | 15 | ||||
-rw-r--r-- | libempathy-gtk/empathy-new-message-dialog.c | 6 | ||||
-rw-r--r-- | libempathy/empathy-utils.c | 34 | ||||
-rw-r--r-- | libempathy/empathy-utils.h | 3 |
5 files changed, 25 insertions, 40 deletions
diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c index 0083102f2..b7a6601c6 100644 --- a/libempathy-gtk/empathy-contact-list-view.c +++ b/libempathy-gtk/empathy-contact-list-view.c @@ -34,6 +34,7 @@ #include <libmissioncontrol/mc-account.h> +#include <libempathy/empathy-call-factory.h> #include <libempathy/empathy-contact-factory.h> #include <libempathy/empathy-contact-list.h> #include <libempathy/empathy-contact-groups.h> @@ -571,7 +572,11 @@ contact_list_view_voip_activated_cb (EmpathyCellRendererActivatable *cell, -1); if (contact) { - empathy_start_call_with_contact (contact); + EmpathyCallFactory *factory; + + factory = empathy_call_factory_get (); + empathy_call_factory_new_call (factory, contact); + g_object_unref (contact); } } diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c index e3fb3c9f7..ca8208374 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -26,6 +26,7 @@ #include <glib/gi18n-lib.h> #include <gtk/gtk.h> +#include <libempathy/empathy-call-factory.h> #include <libempathy/empathy-log-manager.h> #include <libempathy/empathy-dispatcher.h> #include <libempathy/empathy-utils.h> @@ -131,6 +132,16 @@ empathy_contact_chat_menu_item_new (EmpathyContact *contact) return item; } +static void +empathy_contact_call_menu_item_activated (GtkMenuItem *item, + EmpathyContact *contact) +{ + EmpathyCallFactory *factory; + + factory = empathy_call_factory_get (); + empathy_call_factory_new_call (factory, contact); +} + GtkWidget * empathy_contact_call_menu_item_new (EmpathyContact *contact) { @@ -146,8 +157,8 @@ empathy_contact_call_menu_item_new (EmpathyContact *contact) gtk_widget_set_sensitive (item, empathy_contact_can_voip (contact)); gtk_widget_show (image); - g_signal_connect_swapped (item, "activate", - G_CALLBACK (empathy_start_call_with_contact), + g_signal_connect (item, "activate", + G_CALLBACK (empathy_contact_call_menu_item_activated), contact); return item; diff --git a/libempathy-gtk/empathy-new-message-dialog.c b/libempathy-gtk/empathy-new-message-dialog.c index 9127e2919..1db8db1b6 100644 --- a/libempathy-gtk/empathy-new-message-dialog.c +++ b/libempathy-gtk/empathy-new-message-dialog.c @@ -31,6 +31,7 @@ #include <libmissioncontrol/mc-account.h> #include <libmissioncontrol/mission-control.h> +#include <libempathy/empathy-call-factory.h> #include <libempathy/empathy-contact-factory.h> #include <libempathy/empathy-contact-manager.h> #include <libempathy/empathy-dispatcher.h> @@ -186,11 +187,15 @@ new_message_dialog_response_cb (GtkWidget *widget, if (response == 1) { EmpathyContactFactory *factory; EmpathyContact *contact; + EmpathyCallFactory *call_factory; factory = empathy_contact_factory_dup_singleton (); contact = empathy_contact_factory_get_from_id (factory, account, id); empathy_start_call_with_contact (contact); + call_factory = empathy_call_factory_get(); + empathy_call_factory_new_call (call_factory, contact); + g_object_unref (contact); g_object_unref (factory); } else if (response == 2) { @@ -307,4 +312,3 @@ empathy_new_message_dialog_show (GtkWindow *parent) return dialog->dialog; } - diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index bda638dff..a476d9e54 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -453,37 +453,6 @@ empathy_proxy_equal (gconstpointer a, g_str_equal (proxy_a->bus_name, proxy_b->bus_name); } -static void -empathy_call_request_cb (EmpathyDispatchOperation *operation, - const GError *error, gpointer user_data) -{ - EmpathyContact *contact = EMPATHY_CONTACT (user_data); - - if (error != NULL) - { - DEBUG ("Failed to request streamed media channel %s", - error->message); - } - else - { - EmpathyTpCall *call = - EMPATHY_TP_CALL ( - empathy_dispatch_operation_get_channel_wrapper (operation)); - - empathy_tp_call_to (call, contact); - } - - g_object_unref (contact); -} - -void -empathy_start_call_with_contact (EmpathyContact *contact) -{ - g_object_ref (contact); - empathy_dispatcher_call_with_contact (contact, empathy_call_request_cb, - contact); -} - gboolean empathy_check_available_state (void) { @@ -495,10 +464,9 @@ empathy_check_available_state (void) g_object_unref (idle); if (presence != MC_PRESENCE_AVAILABLE && - presence != MC_PRESENCE_UNSET) { + presence != MC_PRESENCE_UNSET) { return FALSE; } return TRUE; } - diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h index 46fa193c0..8684acc00 100644 --- a/libempathy/empathy-utils.h +++ b/libempathy/empathy-utils.h @@ -88,9 +88,6 @@ gboolean empathy_proxy_equal (gconstpointer a, gconstpointer b); guint empathy_proxy_hash (gconstpointer key); gboolean empathy_check_available_state (void); -/* Temporary utility function, should be replaces by better voip infrastructure - * soon */ -void empathy_start_call_with_contact (EmpathyContact *contact); G_END_DECLS |