diff options
| -rw-r--r-- | types/data_device/wlr_data_device.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/types/data_device/wlr_data_device.c b/types/data_device/wlr_data_device.c index f868ea37..cda755b1 100644 --- a/types/data_device/wlr_data_device.c +++ b/types/data_device/wlr_data_device.c @@ -122,6 +122,9 @@ static void seat_client_selection_source_destroy(  		wl_container_of(listener, seat, selection_source_destroy);  	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) {  		struct wl_resource *resource;  		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);  } | 
