diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2007-12-29 23:49:38 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2007-12-29 23:49:38 +0800 |
commit | c557cb70c90bba8d33c1104e15dc693a69caa9d7 (patch) | |
tree | 37f50516cb45684512a5c0d3ad88244d975f6a35 | |
parent | caec259128182461e7454090cb7d88d7919483b2 (diff) | |
download | gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar.gz gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar.bz2 gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar.lz gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar.xz gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.tar.zst gsoc2013-empathy-c557cb70c90bba8d33c1104e15dc693a69caa9d7.zip |
Chandlers leaves when there is no more channels to handle. Translate call window title
svn path=/trunk/; revision=514
-rw-r--r-- | libempathy-gtk/empathy-call-window.c | 1 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/empathy-call-chandler.c | 19 | ||||
-rw-r--r-- | src/empathy-chat-chandler.c | 15 |
4 files changed, 35 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-call-window.c b/libempathy-gtk/empathy-call-window.c index 9b2b46f4b..a1c7bd799 100644 --- a/libempathy-gtk/empathy-call-window.c +++ b/libempathy-gtk/empathy-call-window.c @@ -24,6 +24,7 @@ #include "config.h" #include <gtk/gtk.h> +#include <glib/gi18n.h> #include <libempathy/empathy-debug.h> diff --git a/po/POTFILES.in b/po/POTFILES.in index d137ce877..b23897d87 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -19,6 +19,7 @@ libempathy-gtk/empathy-accounts-dialog.c libempathy-gtk/empathy-accounts-dialog.glade libempathy-gtk/empathy-avatar-chooser.c libempathy-gtk/empathy-avatar-image.c +libempathy-gtk/empathy-call-window.c libempathy-gtk/empathy-call-window.glade libempathy-gtk/empathy-chat.c libempathy-gtk/empathy-chat.glade diff --git a/src/empathy-call-chandler.c b/src/empathy-call-chandler.c index 3a1b51137..be9de1175 100644 --- a/src/empathy-call-chandler.c +++ b/src/empathy-call-chandler.c @@ -42,6 +42,19 @@ #define BUS_NAME "org.gnome.Empathy.CallChandler" #define OBJECT_PATH "/org/gnome/Empathy/CallChandler" +static guint nb_calls = 0; + +static void +call_chandler_weak_notify (gpointer data, + GObject *where_the_object_was) +{ + nb_calls--; + if (nb_calls == 0) { + empathy_debug (DEBUG_DOMAIN, "No more calls, leaving..."); + gtk_main_quit (); + } +} + static void call_chandler_new_channel_cb (EmpathyChandler *chandler, TpConn *tp_conn, @@ -50,13 +63,17 @@ call_chandler_new_channel_cb (EmpathyChandler *chandler, { EmpathyTpCall *call; McAccount *account; + GtkWidget *window; account = mission_control_get_account_for_connection (mc, tp_conn, NULL); call = empathy_tp_call_new (account, tp_chan); - empathy_call_window_show (call); + window = empathy_call_window_show (call); g_object_unref (account); g_object_unref (call); + + nb_calls++; + g_object_weak_ref (G_OBJECT (window), call_chandler_weak_notify, NULL); } int diff --git a/src/empathy-chat-chandler.c b/src/empathy-chat-chandler.c index dc2eb60f7..79bbe8a35 100644 --- a/src/empathy-chat-chandler.c +++ b/src/empathy-chat-chandler.c @@ -48,6 +48,19 @@ #define BUS_NAME "org.gnome.Empathy.ChatChandler" #define OBJECT_PATH "/org/gnome/Empathy/ChatChandler" +static guint nb_chats = 0; + +static void +chat_chandler_weak_notify (gpointer data, + GObject *where_the_object_was) +{ + nb_chats--; + if (nb_chats == 0) { + empathy_debug (DEBUG_DOMAIN, "No more chats, leaving..."); + gtk_main_quit (); + } +} + static void chat_chandler_new_channel_cb (EmpathyChandler *chandler, TpConn *tp_conn, @@ -99,6 +112,8 @@ chat_chandler_new_channel_cb (EmpathyChandler *chandler, return; } + nb_chats++; + g_object_weak_ref (G_OBJECT (chat), chat_chandler_weak_notify, NULL); empathy_chat_present (chat); g_object_unref (chat); |