diff --git a/gpui/src/elements/empty.rs b/gpui/src/elements/empty.rs index 330b77ae4b4a9e34e094bd7f56a162a63d2e5f1f..f5d038bb504bd7fd630bbc1f6d082e0eaa7c75af 100644 --- a/gpui/src/elements/empty.rs +++ b/gpui/src/elements/empty.rs @@ -1,7 +1,10 @@ +use crate::geometry::{ + rect::RectF, + vector::{vec2f, Vector2F}, +}; use crate::{ AfterLayoutContext, Element, Event, EventContext, LayoutContext, PaintContext, SizeConstraint, }; -use pathfinder_geometry::{rect::RectF, vector::Vector2F}; pub struct Empty; @@ -20,7 +23,18 @@ impl Element for Empty { constraint: SizeConstraint, _: &mut LayoutContext, ) -> (Vector2F, Self::LayoutState) { - (constraint.max, ()) + let x = if constraint.max.x().is_finite() { + constraint.max.x() + } else { + constraint.min.x() + }; + let y = if constraint.max.y().is_finite() { + constraint.max.y() + } else { + constraint.min.y() + }; + + (vec2f(x, y), ()) } fn after_layout(&mut self, _: Vector2F, _: &mut Self::LayoutState, _: &mut AfterLayoutContext) { diff --git a/gpui/src/elements/new.rs b/gpui/src/elements/new.rs index 896c14328875f7a1eb1cdcf72e876ee2fb380c35..9cde49417152edde87e014793351873b91921cf5 100644 --- a/gpui/src/elements/new.rs +++ b/gpui/src/elements/new.rs @@ -87,6 +87,9 @@ impl AnyElement for Lifecycle { | Lifecycle::PostLayout { mut element, .. } | Lifecycle::PostPaint { mut element, .. } => { let (size, layout) = element.layout(constraint, ctx); + debug_assert!(size.x().is_finite()); + debug_assert!(size.y().is_finite()); + result = Some(size); Lifecycle::PostLayout { element,