From 7172ce37b1ce82e6d42c46e84122ec65e24bf7a6 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Sat, 18 Nov 2023 20:35:22 -0700 Subject: [PATCH] Fix text wrapping when a child of a v_stack() --- crates/gpui2/src/elements/text.rs | 9 +++++++-- crates/storybook2/src/stories/text.rs | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/gpui2/src/elements/text.rs b/crates/gpui2/src/elements/text.rs index 6849a89711..aaf214e6ee 100644 --- a/crates/gpui2/src/elements/text.rs +++ b/crates/gpui2/src/elements/text.rs @@ -64,13 +64,18 @@ impl Element for Text { let layout_id = cx.request_measured_layout(Default::default(), rem_size, { let element_state = element_state.clone(); - move |known_dimensions, _| { + move |known_dimensions, available_space| { + let wrap_width = known_dimensions.width.or(match available_space.width { + crate::AvailableSpace::Definite(x) => Some(x), + _ => None, + }); + let Some(lines) = text_system .shape_text( &text, font_size, &runs[..], - known_dimensions.width, // Wrap if we know the width. + wrap_width, // Wrap if we know the width. ) .log_err() else { diff --git a/crates/storybook2/src/stories/text.rs b/crates/storybook2/src/stories/text.rs index 6fc76ab907..50b379cc13 100644 --- a/crates/storybook2/src/stories/text.rs +++ b/crates/storybook2/src/stories/text.rs @@ -1,4 +1,5 @@ use gpui::{div, white, Div, ParentComponent, Render, Styled, View, VisualContext, WindowContext}; +use ui::v_stack; pub struct TextStory; @@ -12,7 +13,7 @@ impl Render for TextStory { type Element = Div; fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { - div().size_full().bg(white()).child(concat!( + v_stack().w_96().bg(white()).child(concat!( "The quick brown fox jumps over the lazy dog. ", "Meanwhile, the lazy dog decided it was time for a change. ", "He started daily workout routines, ate healthier and became the fastest dog in town.",