[mutter/wip/carlosg/incr-is-fubar: 20/27] x11: Unset pending flush flag right before notifying on task
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/incr-is-fubar: 20/27] x11: Unset pending flush flag right before notifying on task
- Date: Sat, 11 Apr 2020 19:35:49 +0000 (UTC)
commit f06653e43e32df27ab90d5f69dbb4f828cd77052
Author: Carlos Garnacho <carlosg gnome org>
Date: Sat Apr 11 16:49:15 2020 +0200
x11: Unset pending flush flag right before notifying on task
Together with some other state. We can do this altogether on task
notification, instead of lost somewhere in this function flow.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1198
src/x11/meta-x11-selection-output-stream.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/x11/meta-x11-selection-output-stream.c b/src/x11/meta-x11-selection-output-stream.c
index 9a25d5fc6..377bdb801 100644
--- a/src/x11/meta-x11-selection-output-stream.c
+++ b/src/x11/meta-x11-selection-output-stream.c
@@ -246,8 +246,6 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
priv->data->data,
n_elements);
g_byte_array_remove_range (priv->data, 0, n_elements * element_size);
- if (priv->data->len == 0)
- priv->flush_requested = FALSE;
}
meta_x11_selection_output_stream_notify_selection (stream);
@@ -262,6 +260,10 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
{
char error_str[100];
+ priv->flush_requested = FALSE;
+ priv->delete_pending = FALSE;
+ priv->pipe_error = TRUE;
+
XGetErrorText (xdisplay, error_code, error_str, sizeof (error_str));
g_task_return_new_error (priv->pending_task,
G_IO_ERROR,
@@ -269,12 +271,12 @@ meta_x11_selection_output_stream_perform_flush (MetaX11SelectionOutputStream *st
"Failed to flush selection output stream: %s",
error_str);
g_clear_object (&priv->pending_task);
- priv->pipe_error = TRUE;
}
else if (priv->pending_task)
{
size_t result;
+ priv->flush_requested = FALSE;
result = GPOINTER_TO_SIZE (g_task_get_task_data (priv->pending_task));
g_task_return_int (priv->pending_task, result);
g_clear_object (&priv->pending_task);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]