aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/empathy-call-window.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index d78016ac7..564d904ca 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -2052,6 +2052,15 @@ empathy_call_window_remove_video_input (EmpathyCallWindow *self)
gtk_widget_show (priv->self_user_avatar_widget);
}
+static void
+start_call (EmpathyCallWindow *self)
+{
+ EmpathyCallWindowPriv *priv = GET_PRIV (self);
+
+ priv->call_started = TRUE;
+ empathy_call_handler_start_call (priv->handler);
+ gst_element_set_state (priv->pipeline, GST_STATE_PLAYING);
+}
static gboolean
empathy_call_window_bus_message (GstBus *bus, GstMessage *message,
@@ -2078,9 +2087,7 @@ empathy_call_window_bus_message (GstBus *bus, GstMessage *message,
gst_message_parse_state_changed (message, NULL, &newstate, NULL);
if (newstate == GST_STATE_PAUSED)
{
- priv->call_started = TRUE;
- empathy_call_handler_start_call (priv->handler);
- gst_element_set_state (priv->pipeline, GST_STATE_PLAYING);
+ start_call (self);
}
}
break;
@@ -2474,10 +2481,8 @@ empathy_call_window_restart_call (EmpathyCallWindow *window)
priv->outgoing = TRUE;
empathy_call_window_set_state_connecting (window);
- priv->call_started = TRUE;
- empathy_call_handler_start_call (priv->handler);
+ start_call (window);
empathy_call_window_setup_avatars (window, priv->handler);
- gst_element_set_state (priv->pipeline, GST_STATE_PLAYING);
gtk_action_set_sensitive (priv->redial, FALSE);
gtk_widget_set_sensitive (priv->redial_button, FALSE);