diff options
author | 2023-06-28 01:40:53 +0200 | |
---|---|---|
committer | 2023-06-28 01:40:53 +0200 | |
commit | 8d65e40a1174ecb8225ce9973575bced36e7aeb5 (patch) | |
tree | b530ef68f1424dc7a6ef52af0ecf5291750632fd /core | |
parent | af62ec1c877d0d6d29277fb7dcfd4c681fd499af (diff) | |
parent | 00859c25f576b399871de74f0b9399d074deea35 (diff) | |
download | iced-8d65e40a1174ecb8225ce9973575bced36e7aeb5.tar.gz iced-8d65e40a1174ecb8225ce9973575bced36e7aeb5.tar.bz2 iced-8d65e40a1174ecb8225ce9973575bced36e7aeb5.zip |
Merge pull request #1934 from iced-rs/reuse-text-cache-entries
Reuse entries in `text::Cache`
Diffstat (limited to 'core')
-rw-r--r-- | core/src/renderer/null.rs | 4 | ||||
-rw-r--r-- | core/src/text.rs | 6 | ||||
-rw-r--r-- | core/src/widget/text.rs | 10 |
3 files changed, 9 insertions, 11 deletions
diff --git a/core/src/renderer/null.rs b/core/src/renderer/null.rs index f0cc952e..5d49699e 100644 --- a/core/src/renderer/null.rs +++ b/core/src/renderer/null.rs @@ -64,8 +64,8 @@ impl text::Renderer for Null { _font: Font, _bounds: Size, _shaping: text::Shaping, - ) -> (f32, f32) { - (0.0, 20.0) + ) -> Size { + Size::new(0.0, 20.0) } fn hit_test( diff --git a/core/src/text.rs b/core/src/text.rs index c154cc27..fc8aa20e 100644 --- a/core/src/text.rs +++ b/core/src/text.rs @@ -163,7 +163,7 @@ pub trait Renderer: crate::Renderer { font: Self::Font, bounds: Size, shaping: Shaping, - ) -> (f32, f32); + ) -> Size; /// Measures the width of the text as if it were laid out in a single line. fn measure_width( @@ -173,7 +173,7 @@ pub trait Renderer: crate::Renderer { font: Self::Font, shaping: Shaping, ) -> f32 { - let (width, _) = self.measure( + let bounds = self.measure( content, size, LineHeight::Absolute(Pixels(size)), @@ -182,7 +182,7 @@ pub trait Renderer: crate::Renderer { shaping, ); - width + bounds.width } /// Tests whether the provided point is within the boundaries of text diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index e934a2f5..79df2b02 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -5,7 +5,7 @@ use crate::mouse; use crate::renderer; use crate::text; use crate::widget::Tree; -use crate::{Color, Element, Layout, Length, Pixels, Rectangle, Size, Widget}; +use crate::{Color, Element, Layout, Length, Pixels, Rectangle, Widget}; use std::borrow::Cow; @@ -139,18 +139,16 @@ where let size = self.size.unwrap_or_else(|| renderer.default_size()); - let bounds = limits.max(); - - let (width, height) = renderer.measure( + let bounds = renderer.measure( &self.content, size, self.line_height, self.font.unwrap_or_else(|| renderer.default_font()), - bounds, + limits.max(), self.shaping, ); - let size = limits.resolve(Size::new(width, height)); + let size = limits.resolve(bounds); layout::Node::new(size) } |