Implement the relative pointer protocol

A wp_relative_pointer object is an extension to the wl_pointer interface
only used for emitting relative pointer events. It will only emit events
when the parent pointer has focus.

To get a relative pointer object, use the get_relative_pointer request
of the global wp_relative_pointer_manager object.

The relative pointer protocol is currently an unstable protocol, so
unstable protocol naming conventions has been applied.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/libweston/compositor.h b/libweston/compositor.h
index 45af3e6..4719338 100644
--- a/libweston/compositor.h
+++ b/libweston/compositor.h
@@ -355,6 +355,7 @@
 	struct wl_list link;
 	struct wl_client *client;
 	struct wl_list pointer_resources;
+	struct wl_list relative_pointer_resources;
 };
 
 struct weston_pointer {
@@ -1695,6 +1696,9 @@
 noop_renderer_init(struct weston_compositor *ec);
 
 int
+weston_input_init(struct weston_compositor *compositor);
+
+int
 backend_init(struct weston_compositor *c,
 	     struct weston_backend_config *config_base);
 int