From 0fac29572280d7795941e8ca422bcc5a106d1237 Mon Sep 17 00:00:00 2001
From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Date: Tue, 22 Apr 2014 14:02:41 -0400
Subject: [PATCH] gnome: fix toggle screenshare

When switching back to the active camera, the device name is used
instead of the MRL, causing the client to crash.

Change-Id: Ib9eb95315ac32016cf2de9ab1edcb238f0d4653e
---
 gnome/src/actions.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/gnome/src/actions.c b/gnome/src/actions.c
index b4303f1ae9..26cf76d007 100644
--- a/gnome/src/actions.c
+++ b/gnome/src/actions.c
@@ -1030,27 +1030,22 @@ void
 sflphone_toggle_screenshare(void)
 {
     static gboolean screenshare = TRUE;
-    gboolean switched;
     gchar *resource;
 
     if (screenshare) {
         resource = sflphone_get_display();
-        g_debug("enabling screen sharing (with MRL '%s')", resource);
-        switched = dbus_switch_video_input(resource);
     } else {
-        gchar *device;
-
-	device = dbus_get_active_video_device();
-	resource = g_strconcat("v4l2://", device, NULL);
-        g_debug("restoring camera '%s' (with MRL '%s'", device, resource);
-        switched = dbus_switch_video_input(device);
-	g_free(device);
+        gchar *device = dbus_get_active_video_device();
+        resource = g_strconcat("v4l2://", device, NULL);
+        g_free(device);
     }
 
-    if (switched)
-	    screenshare = !screenshare;
-    else
-	    g_error("failed to switch to resource '%s'\n", resource);
+    if (dbus_switch_video_input(resource)) {
+        g_debug("switched video input to '%s'", resource);
+        screenshare = !screenshare;
+    } else {
+        g_error("failed to switch to resource '%s'\n", resource);
+    }
 
     g_free(resource);
 }
-- 
GitLab