@@ -64,13 +64,18 @@ impl<V: 'static> Element<V> 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 {
@@ -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<Self>;
fn render(&mut self, cx: &mut gpui::ViewContext<Self>) -> 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.",