data-device: fix dangling listener in seat_client_selection_source_destroy
This commit is contained in:
parent
aa2dafb7c8
commit
ae1dd635b1
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue