Make sure that the implicit is valid and still in effect as we start
the drag. Fixes a long standing FIXME.
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. */