compositor: Pass both surface and seat in activation signal

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
diff --git a/libweston/compositor.h b/libweston/compositor.h
index 9219567..4177756 100644
--- a/libweston/compositor.h
+++ b/libweston/compositor.h
@@ -1011,6 +1011,11 @@
 	struct weston_buffer_viewport buffer_viewport;
 };
 
+struct weston_surface_activation_data {
+	struct weston_surface *surface;
+	struct weston_seat *seat;
+};
+
 struct weston_surface {
 	struct wl_resource *resource;
 	struct wl_signal destroy_signal; /* callback argument: this surface */
diff --git a/libweston/input.c b/libweston/input.c
index 9ef3949..c733bbc 100644
--- a/libweston/input.c
+++ b/libweston/input.c
@@ -2930,6 +2930,7 @@
 {
 	struct weston_compositor *compositor = seat->compositor;
 	struct weston_keyboard *keyboard = weston_seat_get_keyboard(seat);
+	struct weston_surface_activation_data activation_data;
 
 	if (keyboard && keyboard->focus != surface) {
 		weston_keyboard_set_focus(keyboard, surface);
@@ -2937,7 +2938,12 @@
 	}
 
 	inc_activate_serial(compositor);
-	wl_signal_emit(&compositor->activate_signal, surface);
+
+	activation_data = (struct weston_surface_activation_data) {
+		.surface = surface,
+		.seat = seat,
+	};
+	wl_signal_emit(&compositor->activate_signal, &activation_data);
 }
 
 int