]> git.mdlowis.com Git - proto/labwc.git/commitdiff
factor keyboard/cursor cleanup into own functions
authorbi4k8 <bi4k8@github>
Fri, 31 Dec 2021 23:30:25 +0000 (23:30 +0000)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sat, 1 Jan 2022 19:24:27 +0000 (19:24 +0000)
include/labwc.h
src/cursor.c
src/keyboard.c
src/seat.c

index 313850401ae6ecdebb264c94ace75d6e8e4b3782..7459b455e5a43da5ac692ae56f8a5c8e21118d32 100644 (file)
@@ -456,8 +456,10 @@ void cursor_set(struct seat *seat, const char *cursor_name);
 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);
 
index 53de192bf52e1cc8c2d0c441b250e28e3930bca7..a6a51418fd9705ffcb9f5c17279b6805300f568e 100644 (file)
@@ -716,3 +716,17 @@ cursor_init(struct seat *seat)
        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);
+}
index 5508f8728c54f9ac551989a8673f4097c1446cc8..1be0c002036d622c6c1f33b33002ee04e0d8b4ae 100644 (file)
@@ -218,3 +218,13 @@ keyboard_init(struct seat *seat)
        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);
+}
index 48e82e67d3c5bab0f1af03f0e6dae9c56ab33f69..e9e8a99504fe3d9f53aed7dba13411e5fe1764c0 100644 (file)
@@ -243,19 +243,9 @@ void
 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