From 08f60dbcf6eae0549eb7d3715582f46361a02800 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 7 Feb 2018 18:30:18 +0100 Subject: [PATCH] wayland: Improve EOF detection when reading selections g_input_stream_read_bytes() roughly provides the same guarantees than g_input_stream_read() wrt the number of bytes being possibly read (i.e. it being a best effort, but no real guarantees). Instead, rely on the 0-len read that we'd get at the end of the transfer. Fixes clipboard/DnD transfers possibly being cut short, resulting on "Broken pipe" errors on the other side. https://gitlab.gnome.org/GNOME/gtk/issues/1 Closes: #1 --- gdk/wayland/gdkselection-wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c index 008778292a..12737d672e 100644 --- a/gdk/wayland/gdkselection-wayland.c +++ b/gdk/wayland/gdkselection-wayland.c @@ -245,7 +245,7 @@ selection_buffer_read_cb (GObject *object, if (bytes) { - finished = g_bytes_get_size (bytes) < get_buffer_size (); + finished = g_bytes_get_size (bytes) == 0; selection_buffer_append_data (buffer, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes));