diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c index 4ba016a8ce..043ca7d6df 100644 --- a/gdk/wayland/gdkselection-wayland.c +++ b/gdk/wayland/gdkselection-wayland.c @@ -558,12 +558,12 @@ gdk_wayland_selection_request_target (GdkWaylandSelection *wayland_selection, else return FALSE; - if (fd >= 0) - wayland_selection->stored_selection.fd = fd; - - if (wayland_selection->source_requested_target == target) + if (wayland_selection->stored_selection.fd == fd && + wayland_selection->source_requested_target == target) return FALSE; + wayland_selection->stored_selection.fd = fd; + wayland_selection->source_requested_target = target; if (window && target != GDK_NONE)