WIP

Nathan Sobo created

Change summary

crates/gpui/playground/ui/src/node.rs | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

Detailed changes

crates/gpui/playground/ui/src/node.rs 🔗

@@ -355,8 +355,8 @@ impl<V: View> Node<V> {
 
         dbg!(self.id_as_string());
         for axis in [Axis2d::X, Axis2d::Y] {
-            dbg!(axis);
             let length = self.style.size.get(axis);
+            dbg!(axis, length);
 
             match length {
                 Length::Fixed(fixed_length) => {
@@ -364,7 +364,8 @@ impl<V: View> Node<V> {
                     // before laying out the children.
                     let fixed_length = fixed_length.to_pixels(rem_pixels);
                     let mut remaining_flex = total_flex.get(axis);
-                    let mut remaining_length = padded_constraint.max.get(axis) - fixed_length;
+                    let mut remaining_length =
+                        (padded_constraint.max.get(axis) - fixed_length).max(0.);
 
                     // Here we avoid the padding exceeding the fixed length by giving
                     // the padding calculation its own remaining_flex and remaining_length.
@@ -379,7 +380,7 @@ impl<V: View> Node<V> {
                         rem_pixels,
                     );
                     remaining_flex -= padding_flex;
-                    remaining_length -= padding_flex;
+                    remaining_length -= padding_length;
                     layout.margins.compute_flex_edges(
                         &self.style.margins,
                         axis,
@@ -388,6 +389,8 @@ impl<V: View> Node<V> {
                         rem_pixels,
                     );
 
+                    dbg!(remaining_flex, remaining_length);
+
                     child_constraint.max.set(axis, remaining_length);
                     if axis == cross_axis {
                         child_constraint.min.set(axis, remaining_length);