Fix mismatched cases of inlineStart/End and flexStart/End (#1561)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1561 Back when I introduced the inline functions that would get the edge according to the writing direction I swapped some instances of `setLayoutPosition` which wrote to the flexStart edge erroneously. We should basically never read from some inline style and write to the flex edge. This changes them all to use the flex values. Reviewed By: NickGerleman Differential Revision: D52921401 fbshipit-source-id: 92b74d652018596134c91827806272ed7418ef6c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
67154d47a3
commit
8fe38fc7a8
@@ -14,28 +14,33 @@
|
|||||||
<div style="width:10px; height: 10px; position: absolute; start: 10px; top: 10px; end: 10px; bottom: 10px;"></div>
|
<div style="width:10px; height: 10px; position: absolute; start: 10px; top: 10px; end: 10px; bottom: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="do_not_clamp_height_of_absolute_node_to_height_of_its_overflow_hidden_parent" style="height: 50px; width: 50px; overflow: hidden; flex-direction: row;">
|
<div id="do_not_clamp_height_of_absolute_node_to_height_of_its_overflow_hidden_parent"
|
||||||
|
style="height: 50px; width: 50px; overflow: hidden; flex-direction: row;">
|
||||||
<div style="position: absolute; start: 0px; top: 0px;">
|
<div style="position: absolute; start: 0px; top: 0px;">
|
||||||
<div style="width: 100px; height: 100px;"></div>
|
<div style="width: 100px; height: 100px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_within_border" style="height:100px; width:100px; border-width: 10px; margin: 10px; padding: 10px;">
|
<div id="absolute_layout_within_border"
|
||||||
|
style="height:100px; width:100px; border-width: 10px; margin: 10px; padding: 10px;">
|
||||||
<div style="position: absolute; width: 50px; height: 50px; left: 0px; top: 0px;"></div>
|
<div style="position: absolute; width: 50px; height: 50px; left: 0px; top: 0px;"></div>
|
||||||
<div style="position: absolute; width: 50px; height: 50px; right: 0px; bottom: 0px;"></div>
|
<div style="position: absolute; width: 50px; height: 50px; right: 0px; bottom: 0px;"></div>
|
||||||
<div style="position: absolute; width: 50px; height: 50px; left: 0px; top: 0px; margin: 10px;"></div>
|
<div style="position: absolute; width: 50px; height: 50px; left: 0px; top: 0px; margin: 10px;"></div>
|
||||||
<div style="position: absolute; width: 50px; height: 50px; right: 0px; bottom: 0px; margin: 10px;"></div>
|
<div style="position: absolute; width: 50px; height: 50px; right: 0px; bottom: 0px; margin: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_center" style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
<div id="absolute_layout_align_items_and_justify_content_center"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_flex_end" style="height: 100px; width: 110px; flex-grow: 1; align-items: flex-end; justify-content: flex-end;">
|
<div id="absolute_layout_align_items_and_justify_content_flex_end"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: flex-end; justify-content: flex-end;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_justify_content_center" style="height: 100px; width: 110px; flex-grow: 1; justify-content: center;">
|
<div id="absolute_layout_justify_content_center"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -47,19 +52,23 @@
|
|||||||
<div style="position: absolute; width: 60px; height: 40px;align-self: center;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;align-self: center;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_center_and_top_position" style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
<div id="absolute_layout_align_items_and_justify_content_center_and_top_position"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;top:10px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;top:10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_center_and_bottom_position" style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
<div id="absolute_layout_align_items_and_justify_content_center_and_bottom_position"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;bottom:10px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;bottom:10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_center_and_left_position" style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
<div id="absolute_layout_align_items_and_justify_content_center_and_left_position"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;left:5px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;left:5px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_align_items_and_justify_content_center_and_right_position" style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
<div id="absolute_layout_align_items_and_justify_content_center_and_right_position"
|
||||||
|
style="height: 100px; width: 110px; flex-grow: 1; align-items: center; justify-content: center;">
|
||||||
<div style="position: absolute; width: 60px; height: 40px;right:5px;"></div>
|
<div style="position: absolute; width: 60px; height: 40px;right:5px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -72,19 +81,23 @@
|
|||||||
<div style="position: absolute; top: 10%; width: 10px; bottom: 10%;"></div>
|
<div style="position: absolute; top: 10%; width: 10px; bottom: 10%;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_in_wrap_reverse_column_container" style="flex-direction:column; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
<div id="absolute_layout_in_wrap_reverse_column_container"
|
||||||
|
style="flex-direction:column; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
||||||
<div style="width:20px; height:20px; position: absolute;"></div>
|
<div style="width:20px; height:20px; position: absolute;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_in_wrap_reverse_row_container" style="flex-direction:row; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
<div id="absolute_layout_in_wrap_reverse_row_container"
|
||||||
|
style="flex-direction:row; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
||||||
<div style="width:20px; height:20px; position: absolute;"></div>
|
<div style="width:20px; height:20px; position: absolute;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_in_wrap_reverse_column_container_flex_end" style="flex-direction:column; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
<div id="absolute_layout_in_wrap_reverse_column_container_flex_end"
|
||||||
|
style="flex-direction:column; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
||||||
<div style="width:20px; height:20px; position: absolute; align-self: flex-end;"></div>
|
<div style="width:20px; height:20px; position: absolute; align-self: flex-end;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_in_wrap_reverse_row_container_flex_end" style="flex-direction:row; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
<div id="absolute_layout_in_wrap_reverse_row_container_flex_end"
|
||||||
|
style="flex-direction:row; width:100px; height:100px; flex-wrap: wrap-reverse;">
|
||||||
<div style="width:20px; height:20px; position: absolute; align-self: flex-end;"></div>
|
<div style="width:20px; height:20px; position: absolute; align-self: flex-end;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -93,11 +106,13 @@
|
|||||||
<div style="width:20%; height:20%; left:20%; top:20%; position: absolute;"></div>
|
<div style="width:20%; height:20%; left:20%; top:20%; position: absolute;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_percentage_height_based_on_padded_parent" style="flex-direction:column; width:100px; height:100px; padding-top: 10px; border-top: 10px solid black;">
|
<div id="absolute_layout_percentage_height_based_on_padded_parent"
|
||||||
|
style="flex-direction:column; width:100px; height:100px; padding-top: 10px; border-top: 10px solid black;">
|
||||||
<div style="width:100px; height:50%; position: absolute;"></div>
|
<div style="width:100px; height:50%; position: absolute;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="absolute_layout_percentage_height_based_on_padded_parent_and_align_items_center" style="position: relative; flex-direction:column; align-items:center; justify-content:center; width:100px; height:100px; padding-top:20px; padding-bottom:20px; ">
|
<div id="absolute_layout_percentage_height_based_on_padded_parent_and_align_items_center"
|
||||||
|
style="position: relative; flex-direction:column; align-items:center; justify-content:center; width:100px; height:100px; padding-top:20px; padding-bottom:20px; ">
|
||||||
<div style="position:absolute; width:100px; height:50%;"></div>
|
<div style="position:absolute; width:100px; height:50%;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -116,3 +131,10 @@
|
|||||||
<div id="absolute_layout_padding_bottom" style="width:200px; height:200px; padding-bottom:100px;">
|
<div id="absolute_layout_padding_bottom" style="width:200px; height:200px; padding-bottom:100px;">
|
||||||
<div style="position:absolute; width:50px; height:50px;"></div>
|
<div style="position:absolute; width:50px; height:50px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="absolute_layout_column_reverse_margin_border"
|
||||||
|
style="width:200px; height:200px; flex-direction: column-reverse;">
|
||||||
|
<div
|
||||||
|
style="position:absolute; width:50px; height:50px; left: 5px; right: 3px; margin-right: 4px; margin-left: 3px; border-right: 7px solid black; border-left: 1px solid black">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@@ -26,7 +26,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_child_multiline" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
<div id="align_baseline_child_multiline"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
||||||
<div style="width: 50px; height: 60px;"></div>
|
<div style="width: 50px; height: 60px;"></div>
|
||||||
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
||||||
<div style="width: 25px; height: 20px;"></div>
|
<div style="width: 25px; height: 20px;"></div>
|
||||||
@@ -36,7 +37,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_child_multiline_override" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
<div id="align_baseline_child_multiline_override"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
||||||
<div style="width: 50px; height: 60px;"></div>
|
<div style="width: 50px; height: 60px;"></div>
|
||||||
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
||||||
<div style="width: 25px; height: 20px;"></div>
|
<div style="width: 25px; height: 20px;"></div>
|
||||||
@@ -46,7 +48,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_child_multiline_no_override_on_secondline" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
<div id="align_baseline_child_multiline_no_override_on_secondline"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
||||||
<div style="width: 50px; height: 60px;"></div>
|
<div style="width: 50px; height: 60px;"></div>
|
||||||
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
<div style="width: 50px; height: 25px;flex-wrap:wrap;flex-direction:row;">
|
||||||
<div style="width: 25px; height: 20px;"></div>
|
<div style="width: 25px; height: 20px;"></div>
|
||||||
@@ -71,7 +74,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_double_nested_child" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
<div id="align_baseline_double_nested_child"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;">
|
||||||
<div style="width: 50px; height: 50px;">
|
<div style="width: 50px; height: 50px;">
|
||||||
<div style="width: 50px; height: 20px;"></div>
|
<div style="width: 50px; height: 20px;"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -93,14 +97,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_child_padding" style="width: 100px; height: 100px; padding:5px; flex-direction:row; align-items: baseline;">
|
<div id="align_baseline_child_padding"
|
||||||
|
style="width: 100px; height: 100px; padding:5px; flex-direction:row; align-items: baseline;">
|
||||||
<div style="width: 50px; height: 50px;"></div>
|
<div style="width: 50px; height: 50px;"></div>
|
||||||
<div style="width: 50px; height: 20px;padding:5px;">
|
<div style="width: 50px; height: 20px;padding:5px;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_multiline" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;flex-wrap:wrap;">
|
<div id="align_baseline_multiline"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;flex-wrap:wrap;">
|
||||||
<div style="width: 50px; height: 50px;"></div>
|
<div style="width: 50px; height: 50px;"></div>
|
||||||
<div style="width: 50px; height: 20px;">
|
<div style="width: 50px; height: 20px;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -112,7 +118,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- TODO: Yoga's behavior is no longer in line with Chromium -->
|
<!-- TODO: Yoga's behavior is no longer in line with Chromium -->
|
||||||
<div id="align_baseline_multiline_column" data-disabled="true" style="width: 100px; height: 100px; flex-direction:column; align-items: baseline;flex-wrap:wrap;">
|
<div id="align_baseline_multiline_column" data-disabled="true"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:column; align-items: baseline;flex-wrap:wrap;">
|
||||||
<div style="width: 50px; height: 50px;"></div>
|
<div style="width: 50px; height: 50px;"></div>
|
||||||
<div style="width: 30px; height: 50px;">
|
<div style="width: 30px; height: 50px;">
|
||||||
<div style="width: 20px; height: 20px;"></div>
|
<div style="width: 20px; height: 20px;"></div>
|
||||||
@@ -124,7 +131,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- TODO: Yoga's behavior is no longer in line with Chromium -->
|
<!-- TODO: Yoga's behavior is no longer in line with Chromium -->
|
||||||
<div id="align_baseline_multiline_column2" data-disabled="true" style="width: 100px; height: 100px; flex-direction:column; align-items: baseline;flex-wrap:wrap;">
|
<div id="align_baseline_multiline_column2" data-disabled="true"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:column; align-items: baseline;flex-wrap:wrap;">
|
||||||
<div style="width: 50px; height: 50px;flex-direction:column;"></div>
|
<div style="width: 50px; height: 50px;flex-direction:column;"></div>
|
||||||
<div style="width: 30px; height: 50px;flex-direction:column;">
|
<div style="width: 30px; height: 50px;flex-direction:column;">
|
||||||
<div style="width: 20px; height: 20px;flex-direction:column;"></div>
|
<div style="width: 20px; height: 20px;flex-direction:column;"></div>
|
||||||
@@ -135,7 +143,8 @@
|
|||||||
<div style="width: 50px; height: 20px;flex-direction:column;"></div>
|
<div style="width: 50px; height: 20px;flex-direction:column;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_baseline_multiline_row_and_column" style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;flex-wrap:wrap;">
|
<div id="align_baseline_multiline_row_and_column"
|
||||||
|
style="width: 100px; height: 100px; flex-direction:row; align-items: baseline;flex-wrap:wrap;">
|
||||||
<div style="width: 50px; height: 50px;"></div>
|
<div style="width: 50px; height: 50px;"></div>
|
||||||
<div style="width: 50px; height: 50px;flex-direction:column;">
|
<div style="width: 50px; height: 50px;flex-direction:column;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -146,31 +155,36 @@
|
|||||||
<div style="width: 50px; height: 20px;"></div>
|
<div style="width: 50px; height: 20px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_items_center_child_with_margin_bigger_than_parent" style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
<div id="align_items_center_child_with_margin_bigger_than_parent"
|
||||||
|
style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
||||||
<div style="align-items: center;">
|
<div style="align-items: center;">
|
||||||
<div style="width: 52px; height: 52px; margin-left: 10px; margin-right: 10px;"></div>
|
<div style="width: 52px; height: 52px; margin-left: 10px; margin-right: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_items_flex_end_child_with_margin_bigger_than_parent" style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
<div id="align_items_flex_end_child_with_margin_bigger_than_parent"
|
||||||
|
style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
||||||
<div style="align-items: flex-end;">
|
<div style="align-items: flex-end;">
|
||||||
<div style="width: 52px; height: 52px; margin-left: 10px; margin-right: 10px;"></div>
|
<div style="width: 52px; height: 52px; margin-left: 10px; margin-right: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_items_center_child_without_margin_bigger_than_parent" style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
<div id="align_items_center_child_without_margin_bigger_than_parent"
|
||||||
|
style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
||||||
<div style="align-items: center;">
|
<div style="align-items: center;">
|
||||||
<div style="width: 72px; height: 72px;"></div>
|
<div style="width: 72px; height: 72px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_items_flex_end_child_without_margin_bigger_than_parent" style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
<div id="align_items_flex_end_child_without_margin_bigger_than_parent"
|
||||||
|
style="height: 52px; width: 52px; align-items: center; justify-content: center;">
|
||||||
<div style="align-items: flex-end;">
|
<div style="align-items: flex-end;">
|
||||||
<div style="width: 72px; height: 72px;"></div>
|
<div style="width: 72px; height: 72px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_center_should_size_based_on_content" style="width: 100px; height: 100px; align-items: center; margin-top: 20px;">
|
<div id="align_center_should_size_based_on_content"
|
||||||
|
style="width: 100px; height: 100px; align-items: center; margin-top: 20px;">
|
||||||
<div style="flex-grow: 0; flex-shrink: 1; justify-content: center;">
|
<div style="flex-grow: 0; flex-shrink: 1; justify-content: center;">
|
||||||
<div style="flex-grow: 1; flex-shrink: 1;">
|
<div style="flex-grow: 1; flex-shrink: 1;">
|
||||||
<div style="width: 20px; height: 20px;"></div>
|
<div style="width: 20px; height: 20px;"></div>
|
||||||
@@ -178,7 +192,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_stretch_should_size_based_on_parent" style="width: 100px; height: 100px; align-items: stretch; margin-top: 20px;">
|
<div id="align_stretch_should_size_based_on_parent"
|
||||||
|
style="width: 100px; height: 100px; align-items: stretch; margin-top: 20px;">
|
||||||
<div style="flex-grow: 0; flex-shrink: 1; justify-content: center;">
|
<div style="flex-grow: 0; flex-shrink: 1; justify-content: center;">
|
||||||
<div style="flex-grow: 1; flex-shrink: 1;">
|
<div style="flex-grow: 1; flex-shrink: 1;">
|
||||||
<div style="width: 20px; height: 20px;"></div>
|
<div style="width: 20px; height: 20px;"></div>
|
||||||
@@ -209,3 +224,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="align_flex_end_with_row_reverse"
|
||||||
|
style="width: 100px; height: 75px; align-items: flex-end; flex-direction: column; flex-wrap: wrap;">
|
||||||
|
<div style="position:relative; width:50px; height:50px; margin-right: 5px; margin-left: 3px;">
|
||||||
|
</div>
|
||||||
|
<div style="position:relative; width:50px; height:50px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="align_stretch_with_row_reverse"
|
||||||
|
style="width: 100px; height: 75px; align-items: stretch; flex-direction: column; flex-wrap: wrap;">
|
||||||
|
<div style="position:relative; width:50px; height:50px; margin-right: 5px; margin-left: 3px;">
|
||||||
|
</div>
|
||||||
|
<div style="position:relative; width:50px; height:50px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
* This source code is licensed under the MIT license found in the
|
* This source code is licensed under the MIT license found in the
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* @generated SignedSource<<655bad05f0830b5ea39b80b01b0e5e9c>>
|
* @generated SignedSource<<ff8c3bfd84ae0fa4cc6ce4b728200f82>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -1357,6 +1357,54 @@ public class YGAbsolutePositionTest {
|
|||||||
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_absolute_layout_column_reverse_margin_border() {
|
||||||
|
YogaConfig config = YogaConfigFactory.create();
|
||||||
|
|
||||||
|
final YogaNode root = createNode(config);
|
||||||
|
root.setFlexDirection(YogaFlexDirection.COLUMN_REVERSE);
|
||||||
|
root.setPositionType(YogaPositionType.ABSOLUTE);
|
||||||
|
root.setWidth(200f);
|
||||||
|
root.setHeight(200f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = createNode(config);
|
||||||
|
root_child0.setPositionType(YogaPositionType.ABSOLUTE);
|
||||||
|
root_child0.setPosition(YogaEdge.LEFT, 5f);
|
||||||
|
root_child0.setPosition(YogaEdge.RIGHT, 3f);
|
||||||
|
root_child0.setMargin(YogaEdge.LEFT, 3f);
|
||||||
|
root_child0.setMargin(YogaEdge.RIGHT, 4f);
|
||||||
|
root_child0.setBorder(YogaEdge.LEFT, 1f);
|
||||||
|
root_child0.setBorder(YogaEdge.RIGHT, 7f);
|
||||||
|
root_child0.setWidth(50f);
|
||||||
|
root_child0.setHeight(50f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(200f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(200f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(8f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(150f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(200f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(200f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(143f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(150f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
private YogaNode createNode(YogaConfig config) {
|
private YogaNode createNode(YogaConfig config) {
|
||||||
return mNodeFactory.create(config);
|
return mNodeFactory.create(config);
|
||||||
}
|
}
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
* This source code is licensed under the MIT license found in the
|
* This source code is licensed under the MIT license found in the
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* @generated SignedSource<<0b1894c4c0d67fd96c7fac6d482c5a5e>>
|
* @generated SignedSource<<17eb6adbebe0409ff047a82dc3257d91>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2175,6 +2175,123 @@ public class YGAlignItemsTest {
|
|||||||
assertEquals(0f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_align_flex_end_with_row_reverse() {
|
||||||
|
YogaConfig config = YogaConfigFactory.create();
|
||||||
|
|
||||||
|
final YogaNode root = createNode(config);
|
||||||
|
root.setAlignItems(YogaAlign.FLEX_END);
|
||||||
|
root.setPositionType(YogaPositionType.ABSOLUTE);
|
||||||
|
root.setWrap(YogaWrap.WRAP);
|
||||||
|
root.setWidth(100f);
|
||||||
|
root.setHeight(75f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = createNode(config);
|
||||||
|
root_child0.setMargin(YogaEdge.LEFT, 3f);
|
||||||
|
root_child0.setMargin(YogaEdge.RIGHT, 5f);
|
||||||
|
root_child0.setWidth(50f);
|
||||||
|
root_child0.setHeight(50f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
|
||||||
|
final YogaNode root_child1 = createNode(config);
|
||||||
|
root_child1.setWidth(50f);
|
||||||
|
root_child1.setHeight(50f);
|
||||||
|
root.addChildAt(root_child1, 1);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(75f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(3f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(58f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(75f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(45f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(-8f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_align_stretch_with_row_reverse() {
|
||||||
|
YogaConfig config = YogaConfigFactory.create();
|
||||||
|
|
||||||
|
final YogaNode root = createNode(config);
|
||||||
|
root.setPositionType(YogaPositionType.ABSOLUTE);
|
||||||
|
root.setWrap(YogaWrap.WRAP);
|
||||||
|
root.setWidth(100f);
|
||||||
|
root.setHeight(75f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = createNode(config);
|
||||||
|
root_child0.setMargin(YogaEdge.LEFT, 3f);
|
||||||
|
root_child0.setMargin(YogaEdge.RIGHT, 5f);
|
||||||
|
root_child0.setWidth(50f);
|
||||||
|
root_child0.setHeight(50f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
|
||||||
|
final YogaNode root_child1 = createNode(config);
|
||||||
|
root_child1.setWidth(50f);
|
||||||
|
root_child1.setHeight(50f);
|
||||||
|
root.addChildAt(root_child1, 1);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(75f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(3f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(58f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(75f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(45f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(-8f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
private YogaNode createNode(YogaConfig config) {
|
private YogaNode createNode(YogaConfig config) {
|
||||||
return mNodeFactory.create(config);
|
return mNodeFactory.create(config);
|
||||||
}
|
}
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
* This source code is licensed under the MIT license found in the
|
* This source code is licensed under the MIT license found in the
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* @generated SignedSource<<5be04807f890bcc32e9b3fc094d21cd1>>
|
* @generated SignedSource<<777a238fc942436d2c803822110bcd07>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -1497,3 +1497,56 @@ test('absolute_layout_padding_bottom', () => {
|
|||||||
config.free();
|
config.free();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
test('absolute_layout_column_reverse_margin_border', () => {
|
||||||
|
const config = Yoga.Config.create();
|
||||||
|
let root;
|
||||||
|
|
||||||
|
try {
|
||||||
|
root = Yoga.Node.create(config);
|
||||||
|
root.setFlexDirection(FlexDirection.ColumnReverse);
|
||||||
|
root.setPositionType(PositionType.Absolute);
|
||||||
|
root.setWidth(200);
|
||||||
|
root.setHeight(200);
|
||||||
|
|
||||||
|
const root_child0 = Yoga.Node.create(config);
|
||||||
|
root_child0.setPositionType(PositionType.Absolute);
|
||||||
|
root_child0.setPosition(Edge.Left, 5);
|
||||||
|
root_child0.setPosition(Edge.Right, 3);
|
||||||
|
root_child0.setMargin(Edge.Left, 3);
|
||||||
|
root_child0.setMargin(Edge.Right, 4);
|
||||||
|
root_child0.setBorder(Edge.Left, 1);
|
||||||
|
root_child0.setBorder(Edge.Right, 7);
|
||||||
|
root_child0.setWidth(50);
|
||||||
|
root_child0.setHeight(50);
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.LTR);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(200);
|
||||||
|
expect(root.getComputedHeight()).toBe(200);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(8);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(150);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.RTL);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(200);
|
||||||
|
expect(root.getComputedHeight()).toBe(200);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(143);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(150);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
} finally {
|
||||||
|
if (typeof root !== 'undefined') {
|
||||||
|
root.freeRecursive();
|
||||||
|
}
|
||||||
|
|
||||||
|
config.free();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
* This source code is licensed under the MIT license found in the
|
* This source code is licensed under the MIT license found in the
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* @generated SignedSource<<6898e1d5236b8b7d6421e2c321d4adef>>
|
* @generated SignedSource<<74d05d33189c5b8e301d7bb50e219a07>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2313,3 +2313,130 @@ test('align_flex_start_with_shrinking_children_with_stretch', () => {
|
|||||||
config.free();
|
config.free();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
test('align_flex_end_with_row_reverse', () => {
|
||||||
|
const config = Yoga.Config.create();
|
||||||
|
let root;
|
||||||
|
|
||||||
|
try {
|
||||||
|
root = Yoga.Node.create(config);
|
||||||
|
root.setAlignItems(Align.FlexEnd);
|
||||||
|
root.setPositionType(PositionType.Absolute);
|
||||||
|
root.setFlexWrap(Wrap.Wrap);
|
||||||
|
root.setWidth(100);
|
||||||
|
root.setHeight(75);
|
||||||
|
|
||||||
|
const root_child0 = Yoga.Node.create(config);
|
||||||
|
root_child0.setMargin(Edge.Left, 3);
|
||||||
|
root_child0.setMargin(Edge.Right, 5);
|
||||||
|
root_child0.setWidth(50);
|
||||||
|
root_child0.setHeight(50);
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
|
||||||
|
const root_child1 = Yoga.Node.create(config);
|
||||||
|
root_child1.setWidth(50);
|
||||||
|
root_child1.setHeight(50);
|
||||||
|
root.insertChild(root_child1, 1);
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.LTR);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(100);
|
||||||
|
expect(root.getComputedHeight()).toBe(75);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(3);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
expect(root_child1.getComputedLeft()).toBe(58);
|
||||||
|
expect(root_child1.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child1.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child1.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.RTL);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(100);
|
||||||
|
expect(root.getComputedHeight()).toBe(75);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(45);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
expect(root_child1.getComputedLeft()).toBe(-8);
|
||||||
|
expect(root_child1.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child1.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child1.getComputedHeight()).toBe(50);
|
||||||
|
} finally {
|
||||||
|
if (typeof root !== 'undefined') {
|
||||||
|
root.freeRecursive();
|
||||||
|
}
|
||||||
|
|
||||||
|
config.free();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
test('align_stretch_with_row_reverse', () => {
|
||||||
|
const config = Yoga.Config.create();
|
||||||
|
let root;
|
||||||
|
|
||||||
|
try {
|
||||||
|
root = Yoga.Node.create(config);
|
||||||
|
root.setPositionType(PositionType.Absolute);
|
||||||
|
root.setFlexWrap(Wrap.Wrap);
|
||||||
|
root.setWidth(100);
|
||||||
|
root.setHeight(75);
|
||||||
|
|
||||||
|
const root_child0 = Yoga.Node.create(config);
|
||||||
|
root_child0.setMargin(Edge.Left, 3);
|
||||||
|
root_child0.setMargin(Edge.Right, 5);
|
||||||
|
root_child0.setWidth(50);
|
||||||
|
root_child0.setHeight(50);
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
|
||||||
|
const root_child1 = Yoga.Node.create(config);
|
||||||
|
root_child1.setWidth(50);
|
||||||
|
root_child1.setHeight(50);
|
||||||
|
root.insertChild(root_child1, 1);
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.LTR);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(100);
|
||||||
|
expect(root.getComputedHeight()).toBe(75);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(3);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
expect(root_child1.getComputedLeft()).toBe(58);
|
||||||
|
expect(root_child1.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child1.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child1.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
root.calculateLayout(undefined, undefined, Direction.RTL);
|
||||||
|
|
||||||
|
expect(root.getComputedLeft()).toBe(0);
|
||||||
|
expect(root.getComputedTop()).toBe(0);
|
||||||
|
expect(root.getComputedWidth()).toBe(100);
|
||||||
|
expect(root.getComputedHeight()).toBe(75);
|
||||||
|
|
||||||
|
expect(root_child0.getComputedLeft()).toBe(45);
|
||||||
|
expect(root_child0.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child0.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child0.getComputedHeight()).toBe(50);
|
||||||
|
|
||||||
|
expect(root_child1.getComputedLeft()).toBe(-8);
|
||||||
|
expect(root_child1.getComputedTop()).toBe(0);
|
||||||
|
expect(root_child1.getComputedWidth()).toBe(50);
|
||||||
|
expect(root_child1.getComputedHeight()).toBe(50);
|
||||||
|
} finally {
|
||||||
|
if (typeof root !== 'undefined') {
|
||||||
|
root.freeRecursive();
|
||||||
|
}
|
||||||
|
|
||||||
|
config.free();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* clang-format off
|
* clang-format off
|
||||||
* @generated SignedSource<<7ec551af37eeaa71fcdc36b1018a1710>>
|
* @generated SignedSource<<43fe6d73966bf8e4694c57420a0fb9d9>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAbsolutePositionTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -1370,3 +1370,52 @@ TEST(YogaTest, absolute_layout_padding_bottom) {
|
|||||||
|
|
||||||
YGConfigFree(config);
|
YGConfigFree(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, absolute_layout_column_reverse_margin_border) {
|
||||||
|
const YGConfigRef config = YGConfigNew();
|
||||||
|
|
||||||
|
const YGNodeRef root = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionColumnReverse);
|
||||||
|
YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute);
|
||||||
|
YGNodeStyleSetWidth(root, 200);
|
||||||
|
YGNodeStyleSetHeight(root, 200);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetPositionType(root_child0, YGPositionTypeAbsolute);
|
||||||
|
YGNodeStyleSetPosition(root_child0, YGEdgeLeft, 5);
|
||||||
|
YGNodeStyleSetPosition(root_child0, YGEdgeRight, 3);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeLeft, 3);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeRight, 4);
|
||||||
|
YGNodeStyleSetBorder(root_child0, YGEdgeLeft, 1);
|
||||||
|
YGNodeStyleSetBorder(root_child0, YGEdgeRight, 7);
|
||||||
|
YGNodeStyleSetWidth(root_child0, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child0, 50);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(200, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(200, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(8, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(150, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(200, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(200, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(143, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(150, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
|
||||||
|
YGConfigFree(config);
|
||||||
|
}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*
|
*
|
||||||
* clang-format off
|
* clang-format off
|
||||||
* @generated SignedSource<<bb4cedf3b5dd4a79764348ae4d96fad1>>
|
* @generated SignedSource<<7cbfd8bdc47bc5e88f4982cb5787b878>>
|
||||||
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
* generated by gentest/gentest-driver.ts from gentest/fixtures/YGAlignItemsTest.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2190,3 +2190,122 @@ TEST(YogaTest, align_flex_start_with_shrinking_children_with_stretch) {
|
|||||||
|
|
||||||
YGConfigFree(config);
|
YGConfigFree(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, align_flex_end_with_row_reverse) {
|
||||||
|
const YGConfigRef config = YGConfigNew();
|
||||||
|
|
||||||
|
const YGNodeRef root = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetAlignItems(root, YGAlignFlexEnd);
|
||||||
|
YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute);
|
||||||
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
|
YGNodeStyleSetWidth(root, 100);
|
||||||
|
YGNodeStyleSetHeight(root, 75);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeLeft, 3);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeRight, 5);
|
||||||
|
YGNodeStyleSetWidth(root_child0, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child0, 50);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
|
||||||
|
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetWidth(root_child1, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child1, 50);
|
||||||
|
YGNodeInsertChild(root, root_child1, 1);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(75, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(3, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(58, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(75, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(-8, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
|
||||||
|
YGConfigFree(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, align_stretch_with_row_reverse) {
|
||||||
|
const YGConfigRef config = YGConfigNew();
|
||||||
|
|
||||||
|
const YGNodeRef root = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute);
|
||||||
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
|
YGNodeStyleSetWidth(root, 100);
|
||||||
|
YGNodeStyleSetHeight(root, 75);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeLeft, 3);
|
||||||
|
YGNodeStyleSetMargin(root_child0, YGEdgeRight, 5);
|
||||||
|
YGNodeStyleSetWidth(root_child0, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child0, 50);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
|
||||||
|
const YGNodeRef root_child1 = YGNodeNewWithConfig(config);
|
||||||
|
YGNodeStyleSetWidth(root_child1, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child1, 50);
|
||||||
|
YGNodeInsertChild(root, root_child1, 1);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(75, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(3, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(58, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(75, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(-8, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
|
||||||
|
YGConfigFree(config);
|
||||||
|
}
|
||||||
|
@@ -1027,18 +1027,17 @@ static void justifyMainAxis(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (childStyle.positionType() == PositionType::Absolute &&
|
if (childStyle.positionType() == PositionType::Absolute &&
|
||||||
child->style().isInlineStartPositionDefined(mainAxis, direction)) {
|
child->style().isFlexStartPositionDefined(mainAxis, direction)) {
|
||||||
if (performLayout) {
|
if (performLayout) {
|
||||||
// In case the child is position absolute and has left/top being
|
// In case the child is position absolute and has left/top being
|
||||||
// defined, we override the position to whatever the user said (and
|
// defined, we override the position to whatever the user said (and
|
||||||
// margin/border).
|
// margin/border).
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
child->style().computeInlineStartPosition(
|
child->style().computeFlexStartPosition(
|
||||||
mainAxis, direction, availableInnerMainDim) +
|
mainAxis, direction, availableInnerMainDim) +
|
||||||
node->style().computeInlineStartBorder(mainAxis, direction) +
|
node->style().computeFlexStartBorder(mainAxis, direction) +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartMargin(
|
||||||
mainAxis, direction, availableInnerWidth),
|
mainAxis, direction, availableInnerWidth),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(mainAxis));
|
flexStartEdge(mainAxis));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1086,7 +1085,7 @@ static void justifyMainAxis(
|
|||||||
// If the child is baseline aligned then the cross dimension is
|
// If the child is baseline aligned then the cross dimension is
|
||||||
// calculated by adding maxAscent and maxDescent from the baseline.
|
// calculated by adding maxAscent and maxDescent from the baseline.
|
||||||
const float ascent = calculateBaseline(child) +
|
const float ascent = calculateBaseline(child) +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartMargin(
|
||||||
FlexDirection::Column, direction, availableInnerWidth);
|
FlexDirection::Column, direction, availableInnerWidth);
|
||||||
const float descent =
|
const float descent =
|
||||||
child->getLayout().measuredDimension(Dimension::Height) +
|
child->getLayout().measuredDimension(Dimension::Height) +
|
||||||
@@ -1333,7 +1332,7 @@ static void calculateLayoutImpl(
|
|||||||
const float paddingAndBorderAxisCross =
|
const float paddingAndBorderAxisCross =
|
||||||
paddingAndBorderForAxis(node, crossAxis, ownerWidth);
|
paddingAndBorderForAxis(node, crossAxis, ownerWidth);
|
||||||
const float leadingPaddingAndBorderCross =
|
const float leadingPaddingAndBorderCross =
|
||||||
node->style().computeInlineStartPaddingAndBorder(
|
node->style().computeFlexStartPaddingAndBorder(
|
||||||
crossAxis, direction, ownerWidth);
|
crossAxis, direction, ownerWidth);
|
||||||
|
|
||||||
SizingMode sizingModeMainDim =
|
SizingMode sizingModeMainDim =
|
||||||
@@ -1589,16 +1588,14 @@ static void calculateLayoutImpl(
|
|||||||
// top/left/bottom/right set, override all the previously computed
|
// top/left/bottom/right set, override all the previously computed
|
||||||
// positions to set it correctly.
|
// positions to set it correctly.
|
||||||
const bool isChildLeadingPosDefined =
|
const bool isChildLeadingPosDefined =
|
||||||
child->style().isInlineStartPositionDefined(crossAxis, direction);
|
child->style().isFlexStartPositionDefined(crossAxis, direction);
|
||||||
if (isChildLeadingPosDefined) {
|
if (isChildLeadingPosDefined) {
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
child->style().computeInlineStartPosition(
|
child->style().computeFlexStartPosition(
|
||||||
crossAxis, direction, availableInnerCrossDim) +
|
crossAxis, direction, availableInnerCrossDim) +
|
||||||
node->style().computeInlineStartBorder(
|
node->style().computeFlexStartBorder(crossAxis, direction) +
|
||||||
crossAxis, direction) +
|
child->style().computeFlexStartMargin(
|
||||||
child->style().computeInlineStartMargin(
|
|
||||||
crossAxis, direction, availableInnerWidth),
|
crossAxis, direction, availableInnerWidth),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(crossAxis));
|
flexStartEdge(crossAxis));
|
||||||
}
|
}
|
||||||
// If leading position is not defined or calculations result in Nan,
|
// If leading position is not defined or calculations result in Nan,
|
||||||
@@ -1607,10 +1604,9 @@ static void calculateLayoutImpl(
|
|||||||
yoga::isUndefined(
|
yoga::isUndefined(
|
||||||
child->getLayout().position(flexStartEdge(crossAxis)))) {
|
child->getLayout().position(flexStartEdge(crossAxis)))) {
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
node->style().computeInlineStartBorder(crossAxis, direction) +
|
node->style().computeFlexStartBorder(crossAxis, direction) +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartMargin(
|
||||||
crossAxis, direction, availableInnerWidth),
|
crossAxis, direction, availableInnerWidth),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(crossAxis));
|
flexStartEdge(crossAxis));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1823,7 +1819,7 @@ static void calculateLayoutImpl(
|
|||||||
}
|
}
|
||||||
if (resolveChildAlignment(node, child) == Align::Baseline) {
|
if (resolveChildAlignment(node, child) == Align::Baseline) {
|
||||||
const float ascent = calculateBaseline(child) +
|
const float ascent = calculateBaseline(child) +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartMargin(
|
||||||
FlexDirection::Column, direction, availableInnerWidth);
|
FlexDirection::Column, direction, availableInnerWidth);
|
||||||
const float descent =
|
const float descent =
|
||||||
child->getLayout().measuredDimension(Dimension::Height) +
|
child->getLayout().measuredDimension(Dimension::Height) +
|
||||||
@@ -1853,20 +1849,18 @@ static void calculateLayoutImpl(
|
|||||||
case Align::FlexStart: {
|
case Align::FlexStart: {
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
currentLead +
|
currentLead +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartPosition(
|
||||||
crossAxis, direction, availableInnerWidth),
|
crossAxis, direction, availableInnerWidth),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(crossAxis));
|
flexStartEdge(crossAxis));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Align::FlexEnd: {
|
case Align::FlexEnd: {
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
currentLead + lineHeight -
|
currentLead + lineHeight -
|
||||||
child->style().computeInlineEndMargin(
|
child->style().computeFlexEndMargin(
|
||||||
crossAxis, direction, availableInnerWidth) -
|
crossAxis, direction, availableInnerWidth) -
|
||||||
child->getLayout().measuredDimension(
|
child->getLayout().measuredDimension(
|
||||||
dimension(crossAxis)),
|
dimension(crossAxis)),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(crossAxis));
|
flexStartEdge(crossAxis));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1882,9 +1876,8 @@ static void calculateLayoutImpl(
|
|||||||
case Align::Stretch: {
|
case Align::Stretch: {
|
||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
currentLead +
|
currentLead +
|
||||||
child->style().computeInlineStartMargin(
|
child->style().computeFlexStartMargin(
|
||||||
crossAxis, direction, availableInnerWidth),
|
crossAxis, direction, availableInnerWidth),
|
||||||
// FIXME T175195745: Mismatched edge
|
|
||||||
flexStartEdge(crossAxis));
|
flexStartEdge(crossAxis));
|
||||||
|
|
||||||
// Remeasure child with the line height as it as been only
|
// Remeasure child with the line height as it as been only
|
||||||
@@ -1935,7 +1928,7 @@ static void calculateLayoutImpl(
|
|||||||
child->setLayoutPosition(
|
child->setLayoutPosition(
|
||||||
currentLead + maxAscentForCurrentLine -
|
currentLead + maxAscentForCurrentLine -
|
||||||
calculateBaseline(child) +
|
calculateBaseline(child) +
|
||||||
child->style().computeInlineStartPosition(
|
child->style().computeFlexStartPosition(
|
||||||
FlexDirection::Column,
|
FlexDirection::Column,
|
||||||
direction,
|
direction,
|
||||||
availableInnerCrossDim),
|
availableInnerCrossDim),
|
||||||
|
Reference in New Issue
Block a user