From c851e67734ec0c761adfd7881c576856ea38734b Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 19 Jul 2024 00:59:54 +0200 Subject: Fix `text::State` downcast in some widgets --- core/src/widget/text.rs | 2 +- widget/src/checkbox.rs | 4 +++- widget/src/radio.rs | 4 +++- widget/src/toggler.rs | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index d0ecd27b..5c5b78dd 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -154,7 +154,7 @@ where /// The internal state of a [`Text`] widget. #[derive(Debug, Default)] -pub struct State(paragraph::Plain

); +pub struct State(pub paragraph::Plain

); impl<'a, Message, Theme, Renderer> Widget for Text<'a, Theme, Renderer> diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs index 225c316d..e5abfbb4 100644 --- a/widget/src/checkbox.rs +++ b/widget/src/checkbox.rs @@ -358,12 +358,14 @@ where { let label_layout = children.next().unwrap(); + let state: &widget::text::State = + tree.state.downcast_ref(); crate::text::draw( renderer, defaults, label_layout, - tree.state.downcast_ref(), + state.0.raw(), crate::text::Style { color: style.text_color, }, diff --git a/widget/src/radio.rs b/widget/src/radio.rs index ccc6a21e..536a7483 100644 --- a/widget/src/radio.rs +++ b/widget/src/radio.rs @@ -353,12 +353,14 @@ where { let label_layout = children.next().unwrap(); + let state: &widget::text::State = + tree.state.downcast_ref(); crate::text::draw( renderer, defaults, label_layout, - tree.state.downcast_ref(), + state.0.raw(), crate::text::Style { color: style.text_color, }, diff --git a/widget/src/toggler.rs b/widget/src/toggler.rs index 853d27ac..821e2526 100644 --- a/widget/src/toggler.rs +++ b/widget/src/toggler.rs @@ -289,12 +289,14 @@ where if self.label.is_some() { let label_layout = children.next().unwrap(); + let state: &widget::text::State = + tree.state.downcast_ref(); crate::text::draw( renderer, style, label_layout, - tree.state.downcast_ref(), + state.0.raw(), crate::text::Style::default(), viewport, ); -- cgit