server: add lose_touch_focus()
authorPekka Paalanen <ppaalanen@gmail.com>
Tue, 10 Jul 2012 10:05:00 +0000 (13:05 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 10 Jul 2012 17:57:33 +0000 (13:57 -0400)
Just like wl_keyboard and wl_pointer, add a signal handler for losing
touch focus.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
src/wayland-server.c

index 9f9d6b3..82ed326 100644 (file)
@@ -498,6 +498,15 @@ lose_keyboard_focus(struct wl_listener *listener, void *data)
 }
 
 static void
+lose_touch_focus(struct wl_listener *listener, void *data)
+{
+       struct wl_touch *touch =
+               container_of(listener, struct wl_touch, focus_listener);
+
+       touch->focus_resource = NULL;
+}
+
+static void
 default_grab_focus(struct wl_pointer_grab *grab,
                   struct wl_surface *surface, wl_fixed_t x, wl_fixed_t y)
 {
@@ -666,6 +675,7 @@ wl_touch_init(struct wl_touch *touch)
 {
        memset(touch, 0, sizeof *touch);
        wl_list_init(&touch->resource_list);
+       touch->focus_listener.notify = lose_touch_focus;
 }
 
 WL_EXPORT void