aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/empathy-camera-menu.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/empathy-camera-menu.c b/src/empathy-camera-menu.c
index a57253872..cee11d759 100644
--- a/src/empathy-camera-menu.c
+++ b/src/empathy-camera-menu.c
@@ -132,6 +132,7 @@ empathy_camera_menu_activate_cb (GtkAction *action,
{
EmpathyGstVideoSrc *video;
const gchar *device;
+ gchar *current_device;
if (self->priv->in_update)
return;
@@ -139,10 +140,18 @@ empathy_camera_menu_activate_cb (GtkAction *action,
video = empathy_call_window_get_video_src (self->priv->window);
device = gtk_action_get_name (action);
+ current_device = empathy_video_src_dup_device (video);
+
+ /* Don't change the device if it's the currently used one */
+ if (!tp_strdiff (device, current_device))
+ goto out;
empathy_call_window_play_camera (self->priv->window, FALSE);
empathy_video_src_change_device (video, device);
empathy_call_window_play_camera (self->priv->window, TRUE);
+
+ out:
+ g_free (current_device);
}
static void