Only send key events to toplevel surface.
diff --git a/egl-compositor.c b/egl-compositor.c
index 917364f..069d675 100644
--- a/egl-compositor.c
+++ b/egl-compositor.c
@@ -798,6 +798,7 @@
 	   struct wl_object *source, uint32_t key, uint32_t state)
 {
 	struct egl_compositor *ec = (struct egl_compositor *) compositor;
+	struct egl_surface *es;
 
 	if (key == KEY_ESC && state == 1) {
 		if (ec->overlay_target == ec->height)
@@ -805,6 +806,15 @@
 		else
 			ec->overlay_target += 200;
 		schedule_repaint(ec);
+	} else if (!wl_list_empty(&ec->surface_list)) {
+		/* FIXME: The event source device should track which
+		 * surface has its key focus and send the event there.
+		 * For now, just send it to the top surface, which
+		 * effectively gives us click to focus behavior. */
+		es = container_of(ec->surface_list.prev,
+				  struct egl_surface, link);
+		wl_surface_post_event(es->wl_surface, source, 
+				      WL_INPUT_KEY, key, state);
 	}
 }