diff --git a/src/ifs/wl_seat/event_handling.rs b/src/ifs/wl_seat/event_handling.rs index 883db383..8ba365c4 100644 --- a/src/ifs/wl_seat/event_handling.rs +++ b/src/ifs/wl_seat/event_handling.rs @@ -808,9 +808,6 @@ impl WlSeatGlobal { dd.send_drop(); }) } - if let Some(src) = &dnd.src { - src.on_drop(); - } // surface.client.flush(); } diff --git a/src/ifs/wl_seat/pointer_owner.rs b/src/ifs/wl_seat/pointer_owner.rs index 3b796fe9..4bda97bc 100644 --- a/src/ifs/wl_seat/pointer_owner.rs +++ b/src/ifs/wl_seat/pointer_owner.rs @@ -421,6 +421,9 @@ impl PointerOwner for DndPointerOwner { if button != self.button || state != KeyState::Released { return; } + if let Some(src) = &self.dnd.src { + src.on_drop(); + } let should_drop = match &self.dnd.src { None => true, Some(s) => s.can_drop(),