void cursor_update_focus(struct server *server);
void cursor_init(struct seat *seat);
+void cursor_finish(struct seat *seat);
void keyboard_init(struct seat *seat);
+void keyboard_finish(struct seat *seat);
void arrange_layers(struct output *output);
wl_signal_add(&seat->seat->events.request_set_primary_selection,
&seat->request_set_primary_selection);
}
+
+void cursor_finish(struct seat *seat) {
+ wl_list_remove(&seat->cursor_motion.link);
+ wl_list_remove(&seat->cursor_motion_absolute.link);
+ wl_list_remove(&seat->cursor_button.link);
+ wl_list_remove(&seat->cursor_axis.link);
+ wl_list_remove(&seat->cursor_frame.link);
+
+ wl_list_remove(&seat->request_cursor.link);
+ wl_list_remove(&seat->request_set_selection.link);
+
+ wlr_xcursor_manager_destroy(seat->xcursor_manager);
+ wlr_cursor_destroy(seat->cursor);
+}
seat->keyboard_modifiers.notify = keyboard_modifiers_notify;
wl_signal_add(&kb->events.modifiers, &seat->keyboard_modifiers);
}
+
+void
+keyboard_finish(struct seat *seat)
+{
+ if (seat->keyboard_group) {
+ wlr_keyboard_group_destroy(seat->keyboard_group);
+ }
+ wl_list_remove(&seat->keyboard_key.link);
+ wl_list_remove(&seat->keyboard_modifiers.link);
+}
seat_finish(struct server *server)
{
struct seat *seat = &server->seat;
- wl_list_remove(&seat->cursor_motion.link);
- wl_list_remove(&seat->cursor_motion_absolute.link);
- wl_list_remove(&seat->cursor_button.link);
- wl_list_remove(&seat->cursor_axis.link);
- wl_list_remove(&seat->cursor_frame.link);
- wl_list_remove(&seat->request_cursor.link);
- wl_list_remove(&seat->request_set_selection.link);
wl_list_remove(&seat->new_input.link);
- if (seat->keyboard_group) {
- wlr_keyboard_group_destroy(seat->keyboard_group);
- }
- wlr_xcursor_manager_destroy(seat->xcursor_manager);
- wlr_cursor_destroy(seat->cursor);
+ keyboard_finish(seat);
+ cursor_finish(seat);
}
void