summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2012-05-16 22:32:40 -0400
committerKristian Høgsberg <krh@bitplanet.net>2012-05-16 22:32:40 -0400
commitb93b6cfa470d9039a3a53f76a9ac0958864af463 (patch)
treeb06d3a97dc1eb5cbf720e0e3cb86c1e97a5ef2af
parent97460500a808e102e436b4df1fd1ea9c5dbd6943 (diff)
compositor: Remove resource from list when we destroy seat devices
-rw-r--r--src/compositor.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compositor.c b/src/compositor.c
index c26a31e..313eb67 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2056,6 +2056,7 @@ seat_get_pointer(struct wl_client *client, struct wl_resource *resource,
cr = wl_client_add_object(client, &wl_pointer_interface,
&pointer_interface, id, seat);
wl_list_insert(&seat->seat.pointer->resource_list, &cr->link);
+ cr->destroy = unbind_resource;
}
static void
@@ -2071,6 +2072,7 @@ seat_get_keyboard(struct wl_client *client, struct wl_resource *resource,
cr = wl_client_add_object(client, &wl_keyboard_interface, NULL, id,
seat);
wl_list_insert(&seat->seat.keyboard->resource_list, &cr->link);
+ cr->destroy = unbind_resource;
}
static void
@@ -2085,6 +2087,7 @@ seat_get_touch(struct wl_client *client, struct wl_resource *resource,
cr = wl_client_add_object(client, &wl_touch_interface, NULL, id, seat);
wl_list_insert(&seat->seat.touch->resource_list, &cr->link);
+ cr->destroy = unbind_resource;
}
static const struct wl_seat_interface seat_interface = {