diff --git a/CHANGELOG.md b/CHANGELOG.md index a5b14f87..c655ec24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ This release has an [MSRV] of 1.82. #### Parley +- `TreeBuilder`'s root style fills line metrics even when the text is empty. ([#393][] by [@kekelp][]) - Selection extension moves the focus to the side being extended. ([#385][] by [@kekelp][]) - Ranged builder default style not respecting `scale`. ([#368][] by [@xStrom][]) @@ -321,6 +322,7 @@ This release has an [MSRV][] of 1.70. [#385]: https://github.com/linebender/parley/pull/385 [#389]: https://github.com/linebender/parley/pull/389 [#390]: https://github.com/linebender/parley/pull/390 +[#393]: https://github.com/linebender/parley/pull/393 [Unreleased]: https://github.com/linebender/parley/compare/v0.5.0...HEAD [0.5.0]: https://github.com/linebender/parley/compare/v0.4.0...v0.5.0 diff --git a/parley/src/layout/alignment.rs b/parley/src/layout/alignment.rs index f8bbbd2e..e81ff53c 100644 --- a/parley/src/layout/alignment.rs +++ b/parley/src/layout/alignment.rs @@ -148,6 +148,7 @@ fn align_impl( } if cluster.info.whitespace().is_space_or_nbsp() { cluster.advance += adjustment; + line.metrics.advance += adjustment; applied += 1; } }); diff --git a/parley/src/resolve/tree.rs b/parley/src/resolve/tree.rs index f6ec5845..1c23ecc8 100644 --- a/parley/src/resolve/tree.rs +++ b/parley/src/resolve/tree.rs @@ -200,6 +200,13 @@ impl TreeStyleBuilder { styles.clear(); styles.extend_from_slice(&self.flatted_styles); + if styles.is_empty() && self.text.is_empty() { + styles.push(RangedStyle { + style: self.tree[0].style.clone(), + range: 0..0, + }); + } + core::mem::take(&mut self.text) } }