From: Victor Toso <m...@victortoso.com>

If SpiceGtkSession is holding the keyboard, that's huge indication
that we should not be requesting clipboard data yet. The proper time
to request it is when another application in the client machine is
asking for it, which means the user would switch to another
application to paste the guest's clipboard data.

This is default behavior over wayland.

Related: https://gitlab.freedesktop.org/spice/win32/vd_agent/issues/6
Related: https://gitlab.freedesktop.org/spice/linux/vd_agent/issues/9
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1594876

Signed-off-by: Victor Toso <victort...@redhat.com>
Tested-by: James Harvey @jamespharvey20
---
 src/spice-gtk-session.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
index 1ccae07..0d3438c 100644
--- a/src/spice-gtk-session.c
+++ b/src/spice-gtk-session.c
@@ -645,9 +645,11 @@ static void clipboard_owner_change(GtkClipboard        
*clipboard,
         if (gtk_clipboard_get_owner(clipboard) == G_OBJECT(self))
             break;
 
+
         s->clipboard_by_guest[selection] = FALSE;
         s->clip_hasdata[selection] = TRUE;
-        if (s->auto_clipboard_enable && !read_only(self))
+        if (s->auto_clipboard_enable && !read_only(self) &&
+            !spice_gtk_session_get_keyboard_has_focus(self))
             gtk_clipboard_request_targets(clipboard, clipboard_get_targets,
                                           get_weak_ref(self));
         break;
-- 
2.19.2

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to