data-device: fix dangling listener in seat_client_selection_source_destroy

This commit is contained in:
emersion 2018-12-12 11:00:28 +01:00
parent aa2dafb7c8
commit ae1dd635b1
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
1 changed files with 3 additions and 2 deletions

View File

@ -122,6 +122,9 @@ static void seat_client_selection_source_destroy(
wl_container_of(listener, seat, selection_source_destroy); wl_container_of(listener, seat, selection_source_destroy);
struct wlr_seat_client *seat_client = seat->keyboard_state.focused_client; struct wlr_seat_client *seat_client = seat->keyboard_state.focused_client;
wl_list_remove(&seat->selection_source_destroy.link);
seat->selection_source = NULL;
if (seat_client && seat->keyboard_state.focused_surface) { if (seat_client && seat->keyboard_state.focused_surface) {
struct wl_resource *resource; struct wl_resource *resource;
wl_resource_for_each(resource, &seat_client->data_devices) { wl_resource_for_each(resource, &seat_client->data_devices) {
@ -129,8 +132,6 @@ static void seat_client_selection_source_destroy(
} }
} }
seat->selection_source = NULL;
wlr_signal_emit_safe(&seat->events.selection, seat); wlr_signal_emit_safe(&seat->events.selection, seat);
} }