libweston-desktop: add set_xwayland_position API

X11 applications expect -geometry command line option to work for
setting the initial window position, but currently this does not work.

Add provision to relay the initial position through libweston-desktop:
- weston_desktop_api gains a new entry set_xwayland_position
- implement set_toplevel_with_position() in xwayland internal interface

Once xwayland plugin starts calling set_toplevel_with_position(),
libweston-desktop can relay that information to a shell if the shell
wants to hear it.

If a shell does not implement the set_xwayland_position hook, the
old behaviour remains: the shell positions xwayland toplevels like any
other.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
diff --git a/libweston-desktop/internal.h b/libweston-desktop/internal.h
index a9c974b..763355b 100644
--- a/libweston-desktop/internal.h
+++ b/libweston-desktop/internal.h
@@ -81,6 +81,11 @@
 weston_desktop_api_minimized_requested(struct weston_desktop *desktop,
 				       struct weston_desktop_surface *surface);
 
+void
+weston_desktop_api_set_xwayland_position(struct weston_desktop *desktop,
+					 struct weston_desktop_surface *surface,
+					 int32_t x, int32_t y);
+
 struct weston_desktop_seat *
 weston_desktop_seat_from_seat(struct weston_seat *wseat);