input: Add weston_pointer_clamp function to ensure pointer visible

This refactors the code out from clip_pointer_motion into a function of
its own which can then be used elsewhere to clamp the pointer
coordinates to the range of the outputs.

This change also makes the caller of clip_pointer_motion use this new
function.
diff --git a/src/compositor.h b/src/compositor.h
index 3206e45..45a14d6 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -345,6 +345,9 @@
 			  struct weston_pointer_grab *grab);
 void
 weston_pointer_end_grab(struct weston_pointer *pointer);
+void
+weston_pointer_clamp(struct weston_pointer *pointer,
+			    wl_fixed_t *fx, wl_fixed_t *fy);
 
 struct weston_keyboard *
 weston_keyboard_create(void);
diff --git a/src/input.c b/src/input.c
index 7360dcb..004d063 100644
--- a/src/input.c
+++ b/src/input.c
@@ -561,17 +561,17 @@
 	touch->grab = &touch->default_grab;
 }
 
-static void
-clip_pointer_motion(struct weston_seat *seat, wl_fixed_t *fx, wl_fixed_t *fy)
+WL_EXPORT void
+weston_pointer_clamp(struct weston_pointer *pointer, wl_fixed_t *fx, wl_fixed_t *fy)
 {
-	struct weston_compositor *ec = seat->compositor;
+	struct weston_compositor *ec = pointer->seat->compositor;
 	struct weston_output *output, *prev = NULL;
 	int x, y, old_x, old_y, valid = 0;
 
 	x = wl_fixed_to_int(*fx);
 	y = wl_fixed_to_int(*fy);
-	old_x = wl_fixed_to_int(seat->pointer->x);
-	old_y = wl_fixed_to_int(seat->pointer->y);
+	old_x = wl_fixed_to_int(pointer->x);
+	old_y = wl_fixed_to_int(pointer->y);
 
 	wl_list_for_each(output, &ec->output_list, link) {
 		if (pixman_region32_contains_point(&output->region,
@@ -605,7 +605,7 @@
 	struct weston_output *output;
 	int32_t ix, iy;
 
-	clip_pointer_motion(seat, &x, &y);
+	weston_pointer_clamp (pointer, &x, &y);
 
 	pointer->x = x;
 	pointer->y = y;