diff --git a/src/data-device.c b/src/data-device.c index 93c923c9..e9c7ed76 100644 --- a/src/data-device.c +++ b/src/data-device.c @@ -351,8 +351,10 @@ data_device_start_drag(struct wl_client *client, struct wl_resource *resource, struct weston_drag *drag = resource->data; struct weston_surface *icon = NULL; - /* FIXME: Check that client has implicit grab on the origin - * surface that matches the given time. */ + if (seat->pointer->button_count == 0 || + seat->pointer->grab_serial != serial || + seat->pointer->focus != origin_resource->data) + return; /* FIXME: Check that the data source type array isn't empty. */