From d099e82a4c1e7d3e88dc34b7333de21928b1b22c Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Thu, 4 Apr 2024 18:13:46 -0400 Subject: [PATCH] fix: send selected action event --- src/dnd/state.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dnd/state.rs b/src/dnd/state.rs index 8d87ff9..3ef7b30 100644 --- a/src/dnd/state.rs +++ b/src/dnd/state.rs @@ -52,6 +52,12 @@ impl Default for DndState { impl DndState { pub(crate) fn selected_action(&mut self, a: DndAction) { self.selected_action = a; + if let Some(tx) = self.sender.as_ref() { + _ = tx.send(DndEvent::Offer( + self.active_surface.as_ref().and_then(|(_, d)| d.as_ref().map(|d| d.id)), + OfferEvent::SelectedAction(a), + )); + } } } @@ -267,10 +273,12 @@ where _ = self.user_selected_action(a); }, DndRequest::DndEnd => { + if let Some(s) = self.dnd_state.icon_surface.take() { + _ = s.destroy(); + } self.dnd_state.source_content = None; self.dnd_state.dnd_source = None; self.pool.remove(&0); - self.dnd_state.icon_surface = None; }, DndRequest::Peek(mime_type) => { if let Err(err) = self.load_dnd(mime_type, true) {