diff --git a/types/data_device/wlr_drag.c b/types/data_device/wlr_drag.c index d6e93cb2..20c9b30e 100644 --- a/types/data_device/wlr_drag.c +++ b/types/data_device/wlr_drag.c @@ -174,7 +174,9 @@ static uint32_t drag_handle_pointer_button(struct wlr_seat_pointer_grab *grab, }; wlr_signal_emit_safe(&drag->events.drop, &event); } else if (drag->source->impl->dnd_finish) { + // This will end the grab and free `drag` wlr_data_source_destroy(drag->source); + return 0; } }