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 6849a8971107f011ee3e5ee06b186ada3da78ed4..aaf214e6eed2e0ade4a472ff5131878ac8234d0f 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 6fc76ab9073c770dba90626611c83313c7b6445a..50b379cc13bbf014a532a8714125a01e3b314d38 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.",