summaryrefslogtreecommitdiff
path: root/crates/typst-layout/src/inline/linebreak.rs
diff options
context:
space:
mode:
authorwznmickey <first@wznmickey.com>2024-11-17 04:04:07 -0500
committerGitHub <noreply@github.com>2024-11-17 09:04:07 +0000
commitcce744cf780dd730f1638e17a0e106faeb38de22 (patch)
treef7700bf4a169b6ac275b0e8bce7afc4159c4f575 /crates/typst-layout/src/inline/linebreak.rs
parent7add9b459a3ca54fca085e71f3dd4e611941c4cc (diff)
Fix unnecessary hyphenation (#5394)
Diffstat (limited to 'crates/typst-layout/src/inline/linebreak.rs')
-rw-r--r--crates/typst-layout/src/inline/linebreak.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/typst-layout/src/inline/linebreak.rs b/crates/typst-layout/src/inline/linebreak.rs
index 26621cd7..236d6892 100644
--- a/crates/typst-layout/src/inline/linebreak.rs
+++ b/crates/typst-layout/src/inline/linebreak.rs
@@ -543,7 +543,12 @@ fn raw_ratio(
) -> f64 {
// Determine how much the line's spaces would need to be stretched
// to make it the desired width.
- let delta = available_width - line_width;
+ let mut delta = available_width - line_width;
+
+ // Avoid possible floating point errors in previous calculation.
+ if delta.approx_eq(Abs::zero()) {
+ delta = Abs::zero();
+ }
// Determine how much stretch or shrink is natural.
let adjustability = if delta >= Abs::zero() { stretchability } else { shrinkability };