diff options
Diffstat (limited to 'core/src/widget')
| -rw-r--r-- | core/src/widget/text.rs | 58 | 
1 files changed, 29 insertions, 29 deletions
| diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index e020b030..4cabc7ce 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -5,7 +5,9 @@ use crate::mouse;  use crate::renderer;  use crate::text::{self, Paragraph};  use crate::widget::tree::{self, Tree}; -use crate::{Color, Element, Layout, Length, Pixels, Point, Rectangle, Widget}; +use crate::{ +    Color, Element, Layout, Length, Pixels, Point, Rectangle, Size, Widget, +};  use std::borrow::Cow; @@ -134,12 +136,11 @@ where          tree::State::new(State(Renderer::Paragraph::default()))      } -    fn width(&self) -> Length { -        self.width -    } - -    fn height(&self) -> Length { -        self.height +    fn size(&self) -> Size<Length> { +        Size { +            width: self.width, +            height: self.height, +        }      }      fn layout( @@ -205,28 +206,27 @@ pub fn layout<Renderer>(  where      Renderer: text::Renderer,  { -    let limits = limits.width(width).height(height); -    let bounds = limits.max(); - -    let size = size.unwrap_or_else(|| renderer.default_size()); -    let font = font.unwrap_or_else(|| renderer.default_font()); - -    let State(ref mut paragraph) = state; - -    paragraph.update(text::Text { -        content, -        bounds, -        size, -        line_height, -        font, -        horizontal_alignment, -        vertical_alignment, -        shaping, -    }); - -    let size = limits.resolve(paragraph.min_bounds()); - -    layout::Node::new(size) +    layout::sized(limits, width, height, |limits| { +        let bounds = limits.max(); + +        let size = size.unwrap_or_else(|| renderer.default_size()); +        let font = font.unwrap_or_else(|| renderer.default_font()); + +        let State(ref mut paragraph) = state; + +        paragraph.update(text::Text { +            content, +            bounds, +            size, +            line_height, +            font, +            horizontal_alignment, +            vertical_alignment, +            shaping, +        }); + +        paragraph.min_bounds() +    })  }  /// Draws text using the same logic as the [`Text`] widget. | 
