summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-06-28 01:40:53 +0200
committerLibravatar GitHub <noreply@github.com>2023-06-28 01:40:53 +0200
commit8d65e40a1174ecb8225ce9973575bced36e7aeb5 (patch)
treeb530ef68f1424dc7a6ef52af0ecf5291750632fd /core/src
parentaf62ec1c877d0d6d29277fb7dcfd4c681fd499af (diff)
parent00859c25f576b399871de74f0b9399d074deea35 (diff)
downloadiced-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/src')
-rw-r--r--core/src/renderer/null.rs4
-rw-r--r--core/src/text.rs6
-rw-r--r--core/src/widget/text.rs10
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)
}