aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-call-window.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2009-12-03 00:58:30 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-04-01 16:15:38 +0800
commite274163d0c1adafbf989096a3637d57867e19e23 (patch)
tree560a778f91f090f1286c960e49f55f4d13a800cf /src/empathy-call-window.c
parent3942c3d23f6ad8b1e476e6c32bec7e936fca89d4 (diff)
downloadgsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar.gz
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar.bz2
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar.lz
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar.xz
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.tar.zst
gsoc2013-empathy-e274163d0c1adafbf989096a3637d57867e19e23.zip
destroy the video_output widget when the call is disconnected
There is no point to destroy it when redialing to recreate it immediately after.
Diffstat (limited to 'src/empathy-call-window.c')
-rw-r--r--src/empathy-call-window.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 95ac16481..4a6301766 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -116,6 +116,8 @@ struct _EmpathyCallWindowPriv
GtkUIManager *ui_manager;
GtkWidget *errors_vbox;
+ /* widget displays the video received from the remote user. This widget is
+ * alive only during call. */
GtkWidget *video_output;
GtkWidget *video_preview;
GtkWidget *remote_user_avatar_widget;
@@ -596,6 +598,7 @@ initialize_output_elements (GstBus *bus, EmpathyCallWindow *self)
{
EmpathyCallWindowPriv *priv = GET_PRIV (self);
+ g_assert (priv->video_output == NULL);
priv->video_output = empathy_video_widget_new (bus);
gtk_box_pack_start (GTK_BOX (priv->remote_user_output_hbox),
@@ -1571,7 +1574,10 @@ empathy_call_window_disconnected (EmpathyCallWindow *self)
gtk_progress_bar_set_fraction (
GTK_PROGRESS_BAR (priv->volume_progress_bar), 0);
- gtk_widget_hide (priv->video_output);
+ /* destroy the video output; it will be recreated when we'll redial */
+ gtk_widget_destroy (priv->video_output);
+ priv->video_output = NULL;
+
gtk_widget_show (priv->remote_user_avatar_widget);
priv->sending_video = FALSE;
@@ -2696,8 +2702,6 @@ empathy_call_window_restart_call (EmpathyCallWindow *window)
{
EmpathyCallWindowPriv *priv = GET_PRIV (window);
- gtk_widget_destroy (priv->video_output);
-
create_pipeline (window);
g_signal_connect (G_OBJECT (priv->audio_input_adj), "value-changed",