]> git.0d.be Git - empathy.git/commitdiff
call-window: ensure "Swap camera" is only visible when there are >1 cameras
authorJonny Lamb <jonnylamb@gnome.org>
Tue, 20 Aug 2013 14:21:57 +0000 (16:21 +0200)
committerJonny Lamb <jonnylamb@gnome.org>
Tue, 20 Aug 2013 14:35:17 +0000 (16:35 +0200)
It was possible to get into a state where "Swap camera" was visible
even when there was only one camera connected.

src/empathy-call-window.c

index 39c70c17b9e4b4dd773457009107e1176348199a..7fe365f304e3926be117bb1daac5a29684b22187 100644 (file)
@@ -596,25 +596,29 @@ empathy_call_window_swap_camera_cb (GtkAction *action,
 }
 
 static void
-empathy_call_window_camera_added_cb (TpawCameraMonitor *monitor,
-    TpawCamera *camera,
-    EmpathyCallWindow *self)
+empathy_call_window_update_swap_camera (EmpathyCallWindow *self)
 {
-  const GList *cameras = tpaw_camera_monitor_get_cameras (monitor);
+  const GList *cameras = tpaw_camera_monitor_get_cameras (
+      self->priv->camera_monitor);
 
   gtk_action_set_visible (self->priv->menu_swap_camera,
       g_list_length ((GList *) cameras) >= 2);
 }
 
 static void
-empathy_call_window_camera_removed_cb (TpawCameraMonitor *monitor,
+empathy_call_window_camera_added_cb (TpawCameraMonitor *monitor,
     TpawCamera *camera,
     EmpathyCallWindow *self)
 {
-  const GList *cameras = tpaw_camera_monitor_get_cameras (monitor);
+  empathy_call_window_update_swap_camera (self);
+}
 
-  gtk_action_set_visible (self->priv->menu_swap_camera,
-      g_list_length ((GList *) cameras) >= 2);
+static void
+empathy_call_window_camera_removed_cb (TpawCameraMonitor *monitor,
+    TpawCamera *camera,
+    EmpathyCallWindow *self)
+{
+  empathy_call_window_update_swap_camera (self);
 }
 
 static void
@@ -1685,6 +1689,7 @@ empathy_call_window_init (EmpathyCallWindow *self)
   gtk_action_set_sensitive (priv->menu_fullscreen, FALSE);
 
   priv->camera_monitor = tpaw_camera_monitor_dup_singleton ();
+  empathy_call_window_update_swap_camera (self);
 
   g_object_bind_property (priv->camera_monitor, "available",
       priv->camera_button, "sensitive",