x11: When clearing old Drop, emit LEAVE event

This can happen when the old DND operation died (like due to a crash or
a broken XWayland compositor.
This commit is contained in:
Benjamin Otte 2020-02-19 04:41:28 +01:00
parent 808961564c
commit 608e624ecf

View File

@ -503,7 +503,12 @@ xdnd_enter_filter (GdkSurface *surface,
return TRUE;
}
g_clear_object (&display_x11->current_drop);
if (display_x11->current_drop)
{
if (GDK_X11_DROP (display_x11->current_drop)->enter_emitted)
gdk_drop_emit_leave_event (display_x11->current_drop, FALSE, GDK_CURRENT_TIME);
g_clear_object (&display_x11->current_drop);
}
seat = gdk_display_get_default_seat (display);