aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2017-08-12 01:16:12 +0200
committerDominique Martinet <asmadeus@codewreck.org>2017-08-12 01:16:12 +0200
commit8427749dd06b52bd8e53539f264a784beca9bb6f (patch)
tree38742a47592963fdb79a1c753eaa6cd951f31930 /backend
parentc323bfc6a0016076e3a27a639da23f6c176c68fa (diff)
wayland backend: emit signal for input/output removal
Diffstat (limited to 'backend')
-rw-r--r--backend/wayland/output.c1
-rw-r--r--backend/wayland/wl_seat.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/backend/wayland/output.c b/backend/wayland/output.c
index 2c7086e2..318f1f05 100644
--- a/backend/wayland/output.c
+++ b/backend/wayland/output.c
@@ -46,6 +46,7 @@ static void wlr_wl_output_transform(struct wlr_output_state *output,
}
static void wlr_wl_output_destroy(struct wlr_output_state *output) {
+ wl_signal_emit(&output->backend->backend->events.output_remove, output->wlr_output);
if(output->frame_callback) wl_callback_destroy(output->frame_callback);
eglDestroySurface(output->backend->egl.display, output->surface);
wl_egl_window_destroy(output->egl_window);
diff --git a/backend/wayland/wl_seat.c b/backend/wayland/wl_seat.c
index ab3de74d..88784828 100644
--- a/backend/wayland/wl_seat.c
+++ b/backend/wayland/wl_seat.c
@@ -169,6 +169,7 @@ static struct wl_keyboard_listener keyboard_listener = {
};
static void input_device_destroy(struct wlr_input_device_state *state) {
+ wl_signal_emit(&state->backend->backend->events.input_remove, state->wlr_device);
if (state->resource)
wl_proxy_destroy(state->resource);
free(state);
@@ -206,7 +207,7 @@ static struct wlr_input_device *allocate_device(struct wlr_backend_state *state,
free(devstate);
return NULL;
}
-
+ devstate->wlr_device = wlr_device;
list_add(state->devices, wlr_device);
return wlr_device;
}