From 144ee70ce5b2d51c8ebabeae394332edfe7c01a4 Mon Sep 17 00:00:00 2001 From: Samuel Date: Thu, 23 Jan 2025 22:38:30 -0300 Subject: [PATCH] Fix small `Text!` in a `Wrap!` not starting a new line --- CHANGELOG.md | 1 + crates/zng-ext-font/src/shaping.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf866829a..e50ac904c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Unreleased +* Fix small `Text!` in a `Wrap!` not starting a new line. # 0.13.8 diff --git a/crates/zng-ext-font/src/shaping.rs b/crates/zng-ext-font/src/shaping.rs index 111e5b953..15af1dc34 100644 --- a/crates/zng-ext-font/src/shaping.rs +++ b/crates/zng-ext-font/src/shaping.rs @@ -2280,6 +2280,7 @@ impl ShapedTextBuilder { word_ctx_key.direction = info.direction(); if info.kind.is_word() { let max_width = self.actual_max_width(); + fonts.shape_segment(seg, word_ctx_key, features, |shaped_seg, font| { if self.origin.x + shaped_seg.x_advance > max_width { // need wrap @@ -2300,6 +2301,8 @@ impl ShapedTextBuilder { }; if !self.out.segments.0[current_start..].is_empty() { self.push_line_break(true, text); + } else if current_start == 0 && self.allow_first_wrap { + self.out.first_wrapped = true; } self.push_glyphs(shaped_seg, self.letter_spacing); self.push_text_seg(seg, info);