diff --git a/xwayland/selection/incoming.c b/xwayland/selection/incoming.c index 3402d9a4..91ab7767 100644 --- a/xwayland/selection/incoming.c +++ b/xwayland/selection/incoming.c @@ -100,8 +100,8 @@ void xwm_get_incr_chunk(struct wlr_xwm_selection_transfer *transfer) { if (xcb_get_property_value_length(transfer->property_reply) > 0) { xwm_write_selection_property_to_wl_client(transfer); } else { - xwm_selection_transfer_finish(transfer); wlr_log(WLR_DEBUG, "incremental transfer complete"); + xwm_selection_transfer_finish(transfer); } } @@ -117,7 +117,6 @@ static void xwm_selection_get_data(struct wlr_xwm_selection *selection) { transfer->incr = true; xwm_selection_transfer_destroy_property_reply(transfer); } else { - transfer->incr = false; // Reply's ownership is transferred to wm, which is responsible for freeing // it. xwm_write_selection_property_to_wl_client(transfer); diff --git a/xwayland/selection/selection.c b/xwayland/selection/selection.c index deb286aa..ea0910d7 100644 --- a/xwayland/selection/selection.c +++ b/xwayland/selection/selection.c @@ -35,6 +35,7 @@ void xwm_selection_transfer_destroy_property_reply( void xwm_selection_transfer_finish( struct wlr_xwm_selection_transfer *transfer) { + transfer->incr = false; xwm_selection_transfer_destroy_property_reply(transfer); xwm_selection_transfer_remove_event_source(transfer); xwm_selection_transfer_close_wl_client_fd(transfer);