summaryrefslogtreecommitdiff
path: root/src/x11/meta-x11-selection-output-stream.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-04-11 17:12:18 +0200
committerRobert Mader <robert.mader@posteo.de>2020-04-16 16:26:04 +0000
commit04d429b743a641c81e2fd8b683a8ec40775b3213 (patch)
tree76532d2710b8c27344980a1a2268d5c8b1a856e0 /src/x11/meta-x11-selection-output-stream.c
parent0b21dcfe08c9a3ac137da518d6ef5f3a80528883 (diff)
downloadmutter-04d429b743a641c81e2fd8b683a8ec40775b3213.tar.gz
x11: Finish INCR transfers properly
INCR transfers are mandated to finish with a final 0-size XChangeProperty roundtrip after the final data chunk. Actually honor this and ensure we iterate just once more for this. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1198
Diffstat (limited to 'src/x11/meta-x11-selection-output-stream.c')
-rw-r--r--src/x11/meta-x11-selection-output-stream.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/x11/meta-x11-selection-output-stream.c b/src/x11/meta-x11-selection-output-stream.c
index 59ca1d400..c6df055b4 100644
--- a/src/x11/meta-x11-selection-output-stream.c
+++ b/src/x11/meta-x11-selection-output-stream.c
@@ -125,7 +125,12 @@ meta_x11_selection_output_stream_needs_flush_unlocked (MetaX11SelectionOutputStr
meta_x11_selection_output_stream_get_instance_private (stream);
if (priv->data->len == 0)
- return FALSE;
+ {
+ if (priv->incr)
+ return g_output_stream_is_closing (G_OUTPUT_STREAM (stream));
+ else
+ return FALSE;
+ }
if (g_output_stream_is_closing (G_OUTPUT_STREAM (stream)))
return TRUE;