input: Split out pointer button sending from grab handler

We'll use it elsewhere later.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
diff --git a/libweston/input.c b/libweston/input.c
index b774d56..d98cc55 100644
--- a/libweston/input.c
+++ b/libweston/input.c
@@ -380,31 +380,42 @@
 }
 
 static void
+weston_pointer_send_button(struct weston_pointer *pointer,
+			   uint32_t time, uint32_t button, uint32_t state_w)
+{
+	struct wl_display *display = pointer->seat->compositor->wl_display;
+	struct wl_list *resource_list;
+	struct wl_resource *resource;
+	uint32_t serial;
+
+	if (!pointer->focus_client)
+		return;
+
+	resource_list = &pointer->focus_client->pointer_resources;
+	if (resource_list && !wl_list_empty(resource_list)) {
+		resource_list = &pointer->focus_client->pointer_resources;
+		serial = wl_display_next_serial(display);
+		wl_resource_for_each(resource, resource_list) {
+			wl_pointer_send_button(resource,
+					       serial,
+					       time,
+					       button,
+					       state_w);
+		}
+	}
+}
+
+static void
 default_grab_pointer_button(struct weston_pointer_grab *grab,
 			    uint32_t time, uint32_t button, uint32_t state_w)
 {
 	struct weston_pointer *pointer = grab->pointer;
 	struct weston_compositor *compositor = pointer->seat->compositor;
 	struct weston_view *view;
-	struct wl_resource *resource;
-	uint32_t serial;
 	enum wl_pointer_button_state state = state_w;
-	struct wl_display *display = compositor->wl_display;
 	wl_fixed_t sx, sy;
-	struct wl_list *resource_list = NULL;
 
-	if (pointer->focus_client)
-		resource_list = &pointer->focus_client->pointer_resources;
-	if (resource_list && !wl_list_empty(resource_list)) {
-		resource_list = &pointer->focus_client->pointer_resources;
-		serial = wl_display_next_serial(display);
-		wl_resource_for_each(resource, resource_list)
-			wl_pointer_send_button(resource,
-					       serial,
-					       time,
-					       button,
-					       state_w);
-	}
+	weston_pointer_send_button(pointer, time, button, state_w);
 
 	if (pointer->button_count == 0 &&
 	    state == WL_POINTER_BUTTON_STATE_RELEASED) {