[mutter/wip/carlosg/incr-is-fubar: 22/27] x11: Only send SelectionNotify on first INCR chunk
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/incr-is-fubar: 22/27] x11: Only send SelectionNotify on first INCR chunk
- Date: Sat, 11 Apr 2020 19:36:00 +0000 (UTC)
commit 485ee3de01371aa1a635d57f43c6a4bd149c7a0e
Author: Carlos Garnacho <carlosg gnome org>
Date: Sat Apr 11 17:05:24 2020 +0200
x11: Only send SelectionNotify on first INCR chunk
This should only be sent if the selection can be sent at once, or
if we are right about to notify on the first chunk of an INCR
transfer.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1198
src/x11/meta-x11-selection-output-stream.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/src/x11/meta-x11-selection-output-stream.c b/src/x11/meta-x11-selection-output-stream.c
index 7ae1e1acc..f7c27cc09 100644
--- a/src/x11/meta-x11-selection-output-stream.c
+++ b/src/x11/meta-x11-selection-output-stream.c
@@ -199,6 +199,7 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
meta_x11_selection_output_stream_get_instance_private (stream);
Display *xdisplay;
size_t element_size, n_elements;
+ gboolean first_chunk = FALSE;
int error_code;
g_assert (!priv->delete_pending);
@@ -213,6 +214,9 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
element_size = get_element_size (priv->format);
n_elements = priv->data->len / element_size;
+ if (!priv->incr)
+ first_chunk = TRUE;
+
if (!g_output_stream_is_closing (G_OUTPUT_STREAM (stream)))
{
XWindowAttributes attrs;
@@ -248,7 +252,8 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
g_byte_array_remove_range (priv->data, 0, n_elements * element_size);
}
- meta_x11_selection_output_stream_notify_selection (stream);
+ if (first_chunk)
+ meta_x11_selection_output_stream_notify_selection (stream);
priv->delete_pending = TRUE;
g_cond_broadcast (&priv->cond);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]