]> git.0d.be Git - empathy.git/commitdiff
Disable video preview when there is no call
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 25 Nov 2009 13:45:45 +0000 (13:45 +0000)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 27 Nov 2009 16:33:45 +0000 (16:33 +0000)
This is a workaround until bug 602937 is fixed.

src/empathy-call-window.c

index 8d2e79a2b7b2e6ae58ae29c33370c8721f6affaa..bc42f332313ce23a2c403f0cc7404dbc5fd543d9 100644 (file)
@@ -130,6 +130,7 @@ struct _EmpathyCallWindowPriv
   GtkAction *redial;
   GtkAction *menu_fullscreen;
   GtkAction *action_camera;
+  GtkAction *action_camera_preview;
   GtkWidget *tool_button_camera_off;
   GtkWidget *tool_button_camera_preview;
   GtkWidget *tool_button_camera_on;
@@ -944,6 +945,7 @@ empathy_call_window_init (EmpathyCallWindow *self)
     "camera_preview", &priv->tool_button_camera_preview,
     "camera_on", &priv->tool_button_camera_on,
     "action_camera_off",  &priv->action_camera,
+    "action_camera_preview",  &priv->action_camera_preview,
     NULL);
   g_free (filename);
 
@@ -1543,6 +1545,13 @@ empathy_call_window_disconnected (EmpathyCallWindow *self)
       gtk_toggle_tool_button_set_active (
           GTK_TOGGLE_TOOL_BUTTON (priv->mic_button), TRUE);
 
+      /* FIXME: This is to workaround the fact that the pipeline has been
+       * destroyed and so we can't display preview until a new call (and so a
+       * new pipeline) is created. We should fix this properly by refactoring
+       * the code managing the pipeline. This is bug #602937 */
+      gtk_widget_set_sensitive (priv->tool_button_camera_preview, FALSE);
+      gtk_action_set_sensitive (priv->action_camera_preview, FALSE);
+
       gtk_progress_bar_set_fraction (
           GTK_PROGRESS_BAR (priv->volume_progress_bar), 0);
 
@@ -1915,6 +1924,11 @@ empathy_call_window_connected (gpointer user_data)
 
   gtk_widget_set_sensitive (priv->mic_button, TRUE);
 
+  /* FIXME: this should won't be needed once bug #602937 is fixed
+   * (see empathy_call_window_disconnected for details) */
+  gtk_widget_set_sensitive (priv->tool_button_camera_preview, TRUE);
+  gtk_action_set_sensitive (priv->action_camera_preview, TRUE);
+
   empathy_call_window_update_avatars_visibility (call, self);
 
   g_object_unref (call);