[mutter/gnome-3-34] x11: Only send SelectionNotify on first INCR chunk



commit 8240aba80f081a7ec4d9028875ffa8cbae922532
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
    
    (cherry picked from commit 7c939d78c2b20989412a710665cbbea6b12ff8dd)

 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 6095b5500..86c54ba11 100644
--- a/src/x11/meta-x11-selection-output-stream.c
+++ b/src/x11/meta-x11-selection-output-stream.c
@@ -203,6 +203,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);
@@ -217,6 +218,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;
@@ -252,7 +256,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]