data-device: Implement DnD progress notification
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 15 Jan 2016 20:14:23 +0000 (21:14 +0100)
committerJonas Ådahl <jadahl@gmail.com>
Tue, 19 Jan 2016 04:34:35 +0000 (12:34 +0800)
commit78d4bf9a3ec990dceee23fd53962a69891352a0e
tree7c9ea18385de33240ea4a25801ed5fc488e6175a
parent87743e93036c661b7d46a3ebb2a1a16233064004
data-device: Implement DnD progress notification

Weston now sends wl_data_source.dnd_drop_performed and .dnd_finished in
order to notify about the different phases of DnD.

wl_data_source.cancelled is also used as mentioned in the docs, being
emitted also on DnD when the operation is meant to fail (eg. source
and dest didn't agree on a mimetype).

The dnd demo is also fixed so the struct dnd_drag isn't leaked.

https://bugs.freedesktop.org/show_bug.cgi?id=91943
https://bugs.freedesktop.org/show_bug.cgi?id=91944

Changes since v6:
  - Add client-side version checks. Minor code shuffling.

Changes since v5:
  - Dissociate source and offer after cancel. Updated to
    apply on top of c9f8f8a7f.

Changes since v4:
  - Make wl_data_offer.finish with the wrong state an error.

Changes since v3:
  - Fixed wl_data_source.dnd_finished vs cancelled emission on
    when interoperating with version < 3 drag destinations.

Changes since v2:
  - Handle wl_data_offer.finish. Fixed commit log inconsistencies.
    Added version checks. Spaces vs tabs fixes. Fixed resource
    versioning.

Changes since v1:
  - Updated to protocol v2.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Michael Catanzaro <mcatanzaro@igalia.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
clients/dnd.c
clients/window.c
src/compositor.h
src/data-device.c