logical fixes

This commit is contained in:
Michael Freno
2025-09-18 14:10:52 -04:00
parent d61f84e045
commit 3316fe4d5d
2 changed files with 92 additions and 92 deletions

View File

@@ -597,11 +597,11 @@ function Element:layoutChildren()
end
if self.flexDirection == FlexDirection.VERTICAL then
-- Position relative to parent origin
-- Position relative to parent origin along Y-axis (main axis)
child.x = self.x + (self.margin.left or 0)
child.y = self.y + currentPos
-- Apply alignment to vertical axis (alignItems)
-- Apply alignment to cross axis (X-axis for vertical flex direction)
if self.alignItems == AlignItems.FLEX_START then
-- nothing
elseif self.alignItems == AlignItems.CENTER then
@@ -691,7 +691,7 @@ function Element:layoutChildren()
-- This would be handled by the justifyContent logic already, so we'll keep existing behavior
end
currentPos = currentPos + (child.height or 0) + self.gap + (self.margin.top or 0) + (self.margin.bottom or 0)
currentPos = currentPos + (child.height or 0) + self.gap
else
-- Horizontal layout: position relative to parent origin
child.x = self.x + currentPos + (self.margin.left or 0)

View File

@@ -132,8 +132,8 @@ function TestJustifyContent:testFlexEndJustifyContent()
-- With flex-end, children should be positioned at the end of the container
-- CSS behavior: children positioned at the end (rightmost for horizontal, bottommost for vertical)
local totalWidth = child1.w + child2.w + window.gap -- child1.width + child2.width + gap
local containerWidth = window.w
local totalWidth = child1.width + child2.width + window.gap -- child1.width + child2.width + gap
local containerWidth = window.width
local expectedPosition = containerWidth - totalWidth
luaunit.assertAlmostEquals(child1.x, expectedPosition)