Blame SOURCES/vinagre-3.22.0-share-clipboard.patch

5d97d9
From e3b5eef0476a5c5a7e11f4d433ffd586497b73cb Mon Sep 17 00:00:00 2001
5d97d9
From: Marek Kasik <mkasik@redhat.com>
5d97d9
Date: Wed, 7 Jun 2017 17:21:36 +0200
5d97d9
Subject: [PATCH] Fix "Share clipboard" functionality in Spice plugin
5d97d9
5d97d9
Set "auto-clipboard" property on correct class. The correct one is SpiceDisplay
5d97d9
for spice-gtk <= 0.31 and SpiceGtkSession for spice-gtk > 0.31.
5d97d9
5d97d9
https://bugzilla.gnome.org/show_bug.cgi?id=783517
5d97d9
---
5d97d9
 configure.ac                      |  4 +++-
5d97d9
 plugins/spice/vinagre-spice-tab.c | 17 ++++++++++++++++-
5d97d9
 2 files changed, 19 insertions(+), 2 deletions(-)
5d97d9
5d97d9
diff --git a/configure.ac b/configure.ac
5d97d9
index 0dfc0db..5b51a82 100644
5d97d9
--- a/configure.ac
5d97d9
+++ b/configure.ac
5d97d9
@@ -91,7 +91,9 @@ AC_ARG_ENABLE([spice],
5d97d9
 AS_IF([test "x$enable_spice" != "xno"],
5d97d9
   [PKG_CHECK_MODULES([SPICE],
5d97d9
     [$SPICE_DEPS],
5d97d9
-    [have_spice=yes],
5d97d9
+    [have_spice=yes
5d97d9
+     PKG_CHECK_EXISTS(spice-client-gtk-3.0 >= 0.32,
5d97d9
+       [AC_DEFINE([HAVE_SPICE_CLIENT_GTK_0_32], [1], [Spice Client Gtk 3.0 library is of version 0.32 or newer])], [])],
5d97d9
     [have_spice=no])],
5d97d9
   [have_spice=no])
5d97d9
 
5d97d9
diff --git a/plugins/spice/vinagre-spice-tab.c b/plugins/spice/vinagre-spice-tab.c
5d97d9
index 3365ee1..657a66f 100644
5d97d9
--- a/plugins/spice/vinagre-spice-tab.c
5d97d9
+++ b/plugins/spice/vinagre-spice-tab.c
5d97d9
@@ -379,9 +379,16 @@ create_spice_display (VinagreSpiceTab *spice_tab, int id)
5d97d9
 		"grab-keyboard", TRUE,
5d97d9
 		"grab-mouse", TRUE,
5d97d9
 		"resize-guest", resize_guest,
5d97d9
-		"auto-clipboard", auto_clipboard,
5d97d9
 		"scaling", scaling,
5d97d9
 		NULL);
5d97d9
+
5d97d9
+#ifdef HAVE_SPICE_CLIENT_GTK_0_32
5d97d9
+  g_object_set (spice_gtk_session_get (spice_tab->priv->spice),
5d97d9
+#else
5d97d9
+  g_object_set (d->display,
5d97d9
+#endif
5d97d9
+		"auto-clipboard", auto_clipboard,
5d97d9
+		NULL);
5d97d9
   /* TODO: add view-only here when spice-gtk ready */
5d97d9
 
5d97d9
   g_object_get (spice_tab->priv->spice, "uri", &name, NULL); /* TODO: a better friendly name? */
5d97d9
@@ -735,7 +742,11 @@ vinagre_spice_tab_set_auto_clipboard (VinagreSpiceTab *tab, gboolean active)
5d97d9
 {
5d97d9
   g_return_if_fail (VINAGRE_IS_SPICE_TAB (tab));
5d97d9
 
5d97d9
+#ifdef HAVE_SPICE_CLIENT_GTK_0_32
5d97d9
+  g_object_set (spice_gtk_session_get (tab->priv->spice), "auto-clipboard", active, NULL);
5d97d9
+#else
5d97d9
   g_object_set (tab->priv->display, "auto-clipboard", active, NULL);
5d97d9
+#endif
5d97d9
 }
5d97d9
 
5d97d9
 gboolean
5d97d9
@@ -745,7 +756,11 @@ vinagre_spice_tab_get_auto_clipboard (VinagreSpiceTab *tab)
5d97d9
 
5d97d9
   g_return_val_if_fail (VINAGRE_IS_SPICE_TAB (tab), FALSE);
5d97d9
 
5d97d9
+#ifdef HAVE_SPICE_CLIENT_GTK_0_32
5d97d9
+  g_object_get (spice_gtk_session_get (tab->priv->spice), "auto-clipboard", &active, NULL);
5d97d9
+#else
5d97d9
   g_object_get (tab->priv->display, "auto-clipboard", &active, NULL);
5d97d9
+#endif
5d97d9
 
5d97d9
   return active;
5d97d9
 }
5d97d9
-- 
5d97d9
2.13.5
5d97d9