From 59407552b60a62468792f480516ee5c2900cee2a Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Tue, 22 Oct 2024 16:04:54 -0400 Subject: [PATCH] fix: apply translation to dropdown position --- src/widget/dropdown/multi/widget.rs | 5 ++++- src/widget/dropdown/widget.rs | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/widget/dropdown/multi/widget.rs b/src/widget/dropdown/multi/widget.rs index c40f8760..b3bb09e2 100644 --- a/src/widget/dropdown/multi/widget.rs +++ b/src/widget/dropdown/multi/widget.rs @@ -200,6 +200,7 @@ impl<'a, S: AsRef, Message: 'a, Item: Clone + PartialEq + 'static> self.text_line_height, self.selections, &self.on_selected, + translation, ) } } @@ -392,6 +393,7 @@ pub fn overlay<'a, S: AsRef, Message: 'a, Item: Clone + PartialEq + 'static text_line_height: text::LineHeight, selections: &'a super::Model, on_selected: &'a dyn Fn(Item) -> Message, + translation: Vector, ) -> Option> { if state.is_open { let description_line_height = text::LineHeight::Absolute(Pixels( @@ -474,7 +476,8 @@ pub fn overlay<'a, S: AsRef, Message: 'a, Item: Clone + PartialEq + 'static let mut position = layout.position(); position.x -= padding.left; - + position.x += translation.x; + position.y += translation.y; Some(menu.overlay(position, bounds.height)) } else { None diff --git a/src/widget/dropdown/widget.rs b/src/widget/dropdown/widget.rs index 80d5a009..3ff76ee1 100644 --- a/src/widget/dropdown/widget.rs +++ b/src/widget/dropdown/widget.rs @@ -243,6 +243,7 @@ impl<'a, S: AsRef, Message: 'a> Widget, Message: 'a>( selections: &'a [S], selected_option: Option, on_selected: &'a dyn Fn(usize) -> Message, + translation: Vector, ) -> Option> { if state.is_open { let bounds = layout.bounds(); @@ -475,6 +477,8 @@ pub fn overlay<'a, S: AsRef, Message: 'a>( let mut position = layout.position(); position.x -= padding.left; + position.x += translation.x; + position.y += translation.y; Some(menu.overlay(position, bounds.height)) } else { None