tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 5364Rust 86Markdown 12TOML 91822 Sutichaykuna

fix how main and cross are caluclated for absolute items

bee63df8595766051e26fd3ad837bd882ecce216 · ruwaq Emil Sjölander · (7 wata ñawpaq) · tayta 09bc464da · kay commitpi sach'ata qhaway

Semántico sayk'uy · 1

src/algo.rs

1 qillqakuna · +7 −4

diff --git a/src/algo.rs b/src/algo.rs
index 3c630e599..a85e0ba60 100644
--- a/src/algo.rs
+++ b/src/algo.rs
@@ -990,12 +990,15 @@ fn compute_internal(
     for child in absolute_children {
         let start_main = child.main_start(node.flex_direction).resolve(container_main_size, f32::NAN);
         let end_main = child.main_end(node.flex_direction).resolve(container_main_size, f32::NAN);
+        let main = if start_main.is_finite() && end_main.is_finite() {
+            container_main_size - start_main - end_main
+        } else { f32::NAN };
+
         let start_cross = child.cross_start(node.flex_direction).resolve(container_cross_size, f32::NAN);
         let end_cross = child.cross_end(node.flex_direction).resolve(container_cross_size, f32::NAN);
-
-        let main = if start_main.is_finite() && end_main.is_finite() { end_main - start_main } else { f32::NAN };
-
-        let cross = if start_cross.is_finite() && end_cross.is_finite() { end_cross - start_cross } else { f32::NAN };
+        let cross = if start_cross.is_finite() && end_cross.is_finite() { 
+            container_cross_size - start_cross - end_cross
+         } else { f32::NAN };
 
         let result = compute_internal(
             child,