Gtk3 - Crash at gtk_drag_begin_with_coordinates()
gtk_drag_begin_with_coordinates() crashes if _gdk_device_window_at_position() return nullptr so gdk_wayland_window_get_wl_surface() pass nullptr to wl_data_device_start_drag() which doesn't like it.
#0 g_logv (log_domain=0x7f04460eb014 "Gdk", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7ffe3d836590) at ../glib/gmessages.c:1423
#1 0x00007f0445517463 in g_log
(log_domain=log_domain@entry=0x7f04460eb014 "Gdk", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7f044557f280 "%s: assertion '%s' failed")
at ../glib/gmessages.c:1461
#2 0x00007f04455186dd in g_return_if_fail_warning
(log_domain=log_domain@entry=0x7f04460eb014 "Gdk", pretty_function=pretty_function@entry=0x7f044610dfa0 <__func__.13> "gdk_wayland_window_get_wl_surface", expression=expression@entry=0x7f044610b9d8 "GDK_IS_WAYLAND_WINDOW (window)") at ../glib/gmessages.c:2930
#3 0x00007f04460bf602 in gdk_wayland_window_get_wl_surface (window=<optimized out>) at ../gdk/wayland/gdkwindow-wayland.c:5120
#4 gdk_wayland_window_get_wl_surface (window=0x0) at ../gdk/wayland/gdkwindow-wayland.c:5118
#5 0x00007f04460afdbb in gdk_wayland_drag_context_manage_dnd (context=0x7f03cc6f6450, ipc_window=<optimized out>, actions=<optimized out>) at ../gdk/wayland/gdkdnd-wayland.c:404
#6 0x00007f04459a1e42 in gtk_drag_begin_internal
(widget=widget@entry=0x7f03f343f260, out_needs_icon=out_needs_icon@entry=0x0, target_list=target_list@entry=0x7f03cd2a8990, actions=actions@entry=(GDK_ACTION_DEFAULT | GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK), button=button@entry=1, event=event@entry=0x7f03ccb42c00, x=<optimized out>, y=<optimized out>) at ../gtk/gtkdnd.c:1834
#7 0x00007f04459a239a in gtk_drag_begin_with_coordinates
(widget=0x7f03f343f260, targets=0x7f03cd2a8990, actions=(GDK_ACTION_DEFAULT | GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK), button=1, event=0x7f03ccb42c00, x=-1, y=-1)
at ../gtk/gtkdnd.c:1995