diff options
author | Rafal Mielniczuk <rafal.mielniczuk2@gmail.com> | 2012-07-11 18:48:12 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-07-11 15:42:46 -0400 |
commit | 96ddcb25abe308340f088954e1b32e25c1fab8ed (patch) | |
tree | 3c3472756a6d5712f4aa744f4ae99a7d84a226a9 /src/clipboard.c | |
parent | 28f59b027a56da58a2cde306d8f0497a8a804ad3 (diff) | |
download | weston-96ddcb25abe308340f088954e1b32e25c1fab8ed.tar.gz |
clipboard: add seat destroy signal handler
Diffstat (limited to 'src/clipboard.c')
-rw-r--r-- | src/clipboard.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/clipboard.c b/src/clipboard.c index 22d4b261..7db5d045 100644 --- a/src/clipboard.c +++ b/src/clipboard.c @@ -243,6 +243,17 @@ clipboard_set_selection(struct wl_listener *listener, void *data) return; } +static void +clipboard_destroy(struct wl_listener *listener, void *data) +{ + struct clipboard *clipboard = + container_of(listener, struct clipboard, destroy_listener); + + wl_list_remove(&clipboard->selection_listener.link); + + free(clipboard); +} + struct clipboard * clipboard_create(struct weston_seat *seat) { @@ -255,9 +266,12 @@ clipboard_create(struct weston_seat *seat) clipboard->seat = seat; clipboard->selection_listener.notify = clipboard_set_selection; + clipboard->destroy_listener.notify = clipboard_destroy; wl_signal_add(&seat->seat.selection_signal, &clipboard->selection_listener); + wl_signal_add(&seat->seat.destroy_signal, + &clipboard->destroy_listener); return clipboard; } |