compositor-wayland: Handle keyboard focus too
diff --git a/compositor/compositor-wayland.c b/compositor/compositor-wayland.c
index d80cf5f..11320d8 100644
--- a/compositor/compositor-wayland.c
+++ b/compositor/compositor-wayland.c
@@ -373,7 +373,7 @@
 			    int32_t x, int32_t y, int32_t sx, int32_t sy)
 {
 	struct wayland_input *input = data;
-	struct wayland_output *output = data;
+	struct wayland_output *output;
 	struct wayland_compositor *c = input->compositor;
 
 	if (surface) {
@@ -392,7 +392,17 @@
 			     struct wl_surface *surface,
 			     struct wl_array *keys)
 {
-	/* FIXME: sth to be done here? */
+	struct wayland_input *input = data;
+	struct wayland_compositor *c = input->compositor;
+	struct wayland_output *output;
+
+	if (surface) {
+		output = wl_surface_get_user_data(surface);
+		notify_keyboard_focus(c->base.input_device,
+				      time, &output->base, keys);
+	} else {
+		notify_keyboard_focus(c->base.input_device, time, NULL, NULL);
+	}
 }
 
 static const struct wl_input_device_listener input_device_listener = {