Support axis source, axis discrete, frame and axis stop events

[jonas: only send focus wl_pointer.frame if resource supports it]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 6e74655..5ae83ef 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1603,6 +1603,17 @@
 }
 
 static void
+noop_grab_axis_source(struct weston_pointer_grab *grab,
+		      uint32_t source)
+{
+}
+
+static void
+noop_grab_frame(struct weston_pointer_grab *grab)
+{
+}
+
+static void
 constrain_position(struct weston_move_grab *move, int *cx, int *cy)
 {
 	struct shell_surface *shsurf = move->base.shsurf;
@@ -1686,6 +1697,8 @@
 	move_grab_motion,
 	move_grab_button,
 	noop_grab_axis,
+	noop_grab_axis_source,
+	noop_grab_frame,
 	move_grab_cancel,
 };
 
@@ -1851,6 +1864,8 @@
 	resize_grab_motion,
 	resize_grab_button,
 	noop_grab_axis,
+	noop_grab_axis_source,
+	noop_grab_frame,
 	resize_grab_cancel,
 };
 
@@ -2016,6 +2031,8 @@
 	busy_cursor_grab_motion,
 	busy_cursor_grab_button,
 	noop_grab_axis,
+	noop_grab_axis_source,
+	noop_grab_frame,
 	busy_cursor_grab_cancel,
 };
 
@@ -3214,6 +3231,18 @@
 }
 
 static void
+popup_grab_axis_source(struct weston_pointer_grab *grab, uint32_t source)
+{
+	weston_pointer_send_axis_source(grab->pointer, source);
+}
+
+static void
+popup_grab_frame(struct weston_pointer_grab *grab)
+{
+	weston_pointer_send_frame(grab->pointer);
+}
+
+static void
 popup_grab_cancel(struct weston_pointer_grab *grab)
 {
 	popup_grab_end(grab->pointer);
@@ -3224,6 +3253,8 @@
 	popup_grab_motion,
 	popup_grab_button,
 	popup_grab_axis,
+	popup_grab_axis_source,
+	popup_grab_frame,
 	popup_grab_cancel,
 };
 
@@ -4923,6 +4954,8 @@
 	rotate_grab_motion,
 	rotate_grab_button,
 	noop_grab_axis,
+	noop_grab_axis_source,
+	noop_grab_frame,
 	rotate_grab_cancel,
 };