In Wayland, the hotspot of a DND icon is set using the buffer offset in wl_buffer.attach. To implement this, add a private API to cause the next wl_surface.attach to offset the new buffer with a given offset. Setting a DND icon hotspot sets this offset while also queuing a redraw of the window to trigger the wl_surface.attach.
https://bugzilla.gnome.org/show_bug.cgi?id=759168
5618333 wayland: Implement DND icon hotspot API
gdk/wayland/gdkdnd-wayland.c | 16 ++++++++++++++--
gdk/wayland/gdkprivate-wayland.h | 4 ++++
gdk/wayland/gdkwindow-wayland.c | 22 +++++++++++++++++++++-
3 files changed, 39 insertions(+), 3 deletions(-)
Upstream: git.gnome.org