wayland: Fix handling of INCR transactions

The window checks in the XPropertyEvent handler were wrong both
ways, so transfers would be left stale after the first chunk was
dealt with.

https://gitlab.gnome.org/GNOME/mutter/issues/1

Closes: #1
This commit is contained in:
Carlos Garnacho 2018-02-07 18:28:38 +01:00
parent 006cdac531
commit 5149d6eb40

View File

@ -1238,7 +1238,7 @@ handle_incr_chunk (MetaWaylandCompositor *compositor,
{ {
if (selection->x11_selection && if (selection->x11_selection &&
selection->x11_selection->incr && selection->x11_selection->incr &&
event->window == selection->owner && event->window == selection->window &&
event->state == PropertyNewValue && event->state == PropertyNewValue &&
event->atom == gdk_x11_get_xatom_by_name ("_META_SELECTION")) event->atom == gdk_x11_get_xatom_by_name ("_META_SELECTION"))
{ {
@ -1248,8 +1248,8 @@ handle_incr_chunk (MetaWaylandCompositor *compositor,
} }
else if (selection->wayland_selection && else if (selection->wayland_selection &&
selection->wayland_selection->incr && selection->wayland_selection->incr &&
event->window == selection->window &&
event->state == PropertyDelete && event->state == PropertyDelete &&
event->window == selection->wayland_selection->request_event.requestor &&
event->atom == selection->wayland_selection->request_event.property) event->atom == selection->wayland_selection->request_event.property)
{ {
/* Wayland to X11 */ /* Wayland to X11 */