aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-call-window.c
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-09-08 22:17:24 +0800
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-09-19 19:28:18 +0800
commita3086b1cb486653391d90e34539fe9277b4d2d08 (patch)
tree67ecc6d2c8174cad241ac3ba71a17fa93e1f659b /src/empathy-call-window.c
parentadd501b302cc0d35936417997c861ae274f2803d (diff)
downloadgsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar.gz
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar.bz2
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar.lz
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar.xz
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.tar.zst
gsoc2013-empathy-a3086b1cb486653391d90e34539fe9277b4d2d08.zip
CallWindow: unconditionally connect to notify::call-channel
Since we can get a new call channel if we e.g. hangup and then call again. https://bugzilla.gnome.org/show_bug.cgi?id=655356
Diffstat (limited to 'src/empathy-call-window.c')
-rw-r--r--src/empathy-call-window.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index ad3653b6d..ca1741d22 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -3468,19 +3468,20 @@ empathy_call_window_connect_handler (EmpathyCallWindow *self)
g_signal_connect (priv->handler, "sink-pad-removed",
G_CALLBACK (empathy_call_window_sink_removed_cb), self);
+ /* We connect to ::call-channel unconditionally since we'll
+ * get new channels if we hangup and redial or if we reuse the
+ * call window. */
+ g_signal_connect (priv->handler, "notify::call-channel",
+ G_CALLBACK (call_handler_notify_call_cb), window);
+
g_object_get (priv->handler, "call-channel", &call, NULL);
if (call != NULL)
{
+ /* We won't get notify::call-channel for this channel, so
+ * directly call the callback. */
call_handler_notify_call_cb (priv->handler, NULL, self);
g_object_unref (call);
}
- else
- {
- /* call-channel doesn't exist yet, we'll connect signals once it has been
- * set */
- g_signal_connect (priv->handler, "notify::call-channel",
- G_CALLBACK (call_handler_notify_call_cb), self);
- }
}
static void