diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c index 6bcf0e127..5e5d0be32 100644 --- a/src/wayland/meta-wayland-data-device.c +++ b/src/wayland/meta-wayland-data-device.c @@ -543,6 +543,9 @@ meta_wayland_drag_dest_focus_in (MetaWaylandDataDevice *data_device, struct wl_client *client; wl_fixed_t sx, sy; + if (!grab->drag_focus_data_device) + return; + client = wl_resource_get_client (surface->resource); display = wl_client_get_display (client); @@ -563,7 +566,8 @@ meta_wayland_drag_dest_focus_out (MetaWaylandDataDevice *data_device, { MetaWaylandDragGrab *grab = data_device->current_grab; - wl_data_device_send_leave (grab->drag_focus_data_device); + if (grab->drag_focus_data_device) + wl_data_device_send_leave (grab->drag_focus_data_device); wl_list_remove (&grab->drag_focus_listener.link); grab->drag_focus_data_device = NULL;