From 556bf3ac31be8714d9b9cb92f000a161f5132d8c Mon Sep 17 00:00:00 2001 From: emersion Date: Tue, 5 Feb 2019 10:49:28 +0100 Subject: data-device: destroy previous source when starting drag This supersedes f24e17259e49aef55b7ada54793a4cdb49ae94a1 and 04c9ca4198a729a95a6368bbbf0438d1ba3465fa. These commits were manually removing wlr_data_source destroy handlers when starting a new drag. This is error-prone. Instead, this commit destroys the previous source whenever we start a new drag. --- xwayland/selection/dnd.c | 5 ----- 1 file changed, 5 deletions(-) (limited to 'xwayland') diff --git a/xwayland/selection/dnd.c b/xwayland/selection/dnd.c index fc090936..ec5f16c7 100644 --- a/xwayland/selection/dnd.c +++ b/xwayland/selection/dnd.c @@ -315,8 +315,6 @@ static void seat_handle_drag_source_destroy(struct wl_listener *listener, wl_container_of(listener, xwm, seat_drag_source_destroy); wl_list_remove(&xwm->seat_drag_source_destroy.link); - xwm->seat_drag_source_destroy.link.prev = NULL; - xwm->seat_drag_source_destroy.link.next = NULL; xwm->drag_focus = NULL; } @@ -334,9 +332,6 @@ void xwm_seat_handle_start_drag(struct wlr_xwm *xwm, struct wlr_drag *drag) { wl_signal_add(&drag->events.destroy, &xwm->seat_drag_destroy); xwm->seat_drag_destroy.notify = seat_handle_drag_destroy; - if (xwm->seat_drag_source_destroy.link.prev != NULL) { - wl_list_remove(&xwm->seat_drag_source_destroy.link); - } wl_signal_add(&drag->source->events.destroy, &xwm->seat_drag_source_destroy); xwm->seat_drag_source_destroy.notify = seat_handle_drag_source_destroy; -- cgit v1.2.3