From 73369a18eb4069f3f3d1916fd1e17537ee87a587 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Mon, 23 Feb 2026 16:36:45 -0500 Subject: [PATCH] fix: more drag destinations --- widget/src/float.rs | 17 +++++++++++++++++ widget/src/responsive.rs | 2 +- widget/src/themer.rs | 17 +++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/widget/src/float.rs b/widget/src/float.rs index 0364b7b4..27bd8aad 100644 --- a/widget/src/float.rs +++ b/widget/src/float.rs @@ -248,6 +248,23 @@ where .overlay(state, layout, renderer, viewport, offset) } } + + fn drag_destinations( + &self, + state: &widget::Tree, + layout: Layout<'_>, + renderer: &Renderer, + dnd_rectangles: &mut crate::core::clipboard::DndDestinationRectangles, + ) { + if let Some(l) = layout.children().next() { + self.content.as_widget().drag_destinations( + state, + l.with_virtual_offset(layout.virtual_offset()), + renderer, + dnd_rectangles, + ); + } + } } impl<'a, Message, Theme, Renderer> From> diff --git a/widget/src/responsive.rs b/widget/src/responsive.rs index 6b2cb2c5..46b77924 100644 --- a/widget/src/responsive.rs +++ b/widget/src/responsive.rs @@ -201,7 +201,7 @@ where ) { if let Some(l) = layout.children().next() { self.content.as_widget().drag_destinations( - state, + &state.children[0], l.with_virtual_offset(layout.virtual_offset()), renderer, dnd_rectangles, diff --git a/widget/src/themer.rs b/widget/src/themer.rs index 2f5a9ae7..306c8580 100644 --- a/widget/src/themer.rs +++ b/widget/src/themer.rs @@ -281,6 +281,23 @@ where }) .map(|overlay| overlay::Element::new(Box::new(overlay))) } + + fn drag_destinations( + &self, + state: &Tree, + layout: Layout<'_>, + renderer: &Renderer, + dnd_rectangles: &mut crate::core::clipboard::DndDestinationRectangles, + ) { + if let Some(l) = layout.children().next() { + self.content.as_widget().drag_destinations( + state, + l.with_virtual_offset(layout.virtual_offset()), + renderer, + dnd_rectangles, + ); + } + } } impl<'a, Message, Theme, Renderer, AnyTheme>