aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2012-06-12 23:57:33 +0200
committerKristian Høgsberg <krh@bitplanet.net>2012-06-12 20:18:42 -0400
commit1432bd62df3f30a8a28eba0c5e795113741bade3 (patch)
tree100dde4d0d98deff9bd4f6b8a3f3c3e573f12d95 /src
parentwayland-util: wl_list_insert_list() should accept empty lists (diff)
downloadwayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar.gz
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar.bz2
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar.lz
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar.xz
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.tar.zst
wayland-1432bd62df3f30a8a28eba0c5e795113741bade3.zip
wayland-server: Add destroy signal to wl_seat
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/wayland-server.c4
-rw-r--r--src/wayland-server.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/wayland-server.c b/src/wayland-server.c
index fb4e157..75f7e1f 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -622,6 +622,8 @@ wl_seat_init(struct wl_seat *seat)
{
memset(seat, 0, sizeof *seat);
+ wl_signal_init(&seat->destroy_signal);
+
seat->selection_data_source = NULL;
wl_list_init(&seat->base_resource_list);
wl_signal_init(&seat->selection_signal);
@@ -632,6 +634,8 @@ wl_seat_init(struct wl_seat *seat)
WL_EXPORT void
wl_seat_release(struct wl_seat *seat)
{
+ wl_signal_emit(&seat->destroy_signal, seat);
+
if (seat->pointer)
wl_pointer_release(seat->pointer);
if (seat->keyboard)
diff --git a/src/wayland-server.h b/src/wayland-server.h
index a447c6d..a7bc7b4 100644
--- a/src/wayland-server.h
+++ b/src/wayland-server.h
@@ -294,6 +294,7 @@ struct wl_touch {
struct wl_seat {
struct wl_list base_resource_list;
+ struct wl_signal destroy_signal;
struct wl_pointer *pointer;
struct wl_keyboard *keyboard;