layout: Use Size::FitContent when the alignment isn't normal or stretch for absolutely positioned elements (#34264)

* layout: Use Size::FitContent when the alignment isn't normal or stretch

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Use unwrap_or_default()

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Use self.alignment.value()

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Refactor used_size to handle non-definite sizes

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Include AlignFlags::Auto

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Update test expectations

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

---------

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
This commit is contained in:
tanishka 2024-11-18 20:36:23 +05:30 committed by GitHub
parent 997b6411c0
commit 11dfbd6f90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 23 additions and 593 deletions

View file

@ -846,10 +846,16 @@ impl<'a> AbsoluteAxisSolver<'a> {
let stretch_size = free_space -
self.computed_margin_start.auto_is(Au::zero) -
self.computed_margin_end.auto_is(Au::zero);
let used_size = solve_size(Size::Stretch, stretch_size)
.to_definite()
.unwrap();
free_space -= used_size;
let initial_behavior = match self.alignment.value() {
AlignFlags::STRETCH | AlignFlags::NORMAL | AlignFlags::AUTO => Size::Stretch,
_ => Size::FitContent,
};
let size = solve_size(initial_behavior, stretch_size);
if let Some(used_size) = size.to_definite() {
free_space -= used_size;
} else {
free_space = Au::zero();
}
let (margin_start, margin_end) =
match (self.computed_margin_start, self.computed_margin_end) {
(AuOrAuto::Auto, AuOrAuto::Auto) => {
@ -872,7 +878,7 @@ impl<'a> AbsoluteAxisSolver<'a> {
};
AxisResult {
anchor: Anchor::Start(start),
size: SizeConstraint::Definite(used_size),
size,
margin_start,
margin_end,
}

View file

@ -1,36 +1,18 @@
[align-self-default-overflow-htb-ltr-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,36 +1,18 @@
[align-self-default-overflow-htb-ltr-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,36 +1,18 @@
[align-self-default-overflow-htb-rtl-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,36 +1,18 @@
[align-self-default-overflow-htb-rtl-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-ltr-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-ltr-vlr.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-ltr-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-rtl-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-rtl-vlr.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,42 +1,12 @@
[align-self-htb-rtl-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL

View file

@ -1,36 +1,18 @@
[justify-self-default-overflow-htb-ltr-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,36 +1,18 @@
[justify-self-default-overflow-htb-ltr-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
[.item 7]
expected: FAIL
[.item 13]
[.item 14]
expected: FAIL

View file

@ -1,42 +1,18 @@
[justify-self-default-overflow-htb-rtl-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL

View file

@ -1,42 +1,18 @@
[justify-self-default-overflow-htb-rtl-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 10]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-ltr-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-ltr-vlr.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-ltr-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-rtl-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-rtl-vlr.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,54 +1,18 @@
[justify-self-htb-rtl-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 4]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL
[.item 7]
expected: FAIL
[.item 8]
expected: FAIL
[.item 9]
expected: FAIL
[.item 11]
expected: FAIL
[.item 12]
expected: FAIL
[.item 13]
expected: FAIL
[.item 14]
expected: FAIL
[.item 15]
expected: FAIL
[.item 16]
expected: FAIL
[.item 17]
expected: FAIL
[.item 18]
expected: FAIL
[.item 19]
expected: FAIL

View file

@ -1,16 +1,10 @@
[stretch-intrinsic-size-htb-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL

View file

@ -1,16 +1,10 @@
[stretch-intrinsic-size-htb-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL

View file

@ -1,16 +1,10 @@
[stretch-intrinsic-size-vrl-htb.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL

View file

@ -1,16 +1,10 @@
[stretch-intrinsic-size-vrl-vrl.html]
[.item 1]
expected: FAIL
[.item 2]
expected: FAIL
[.item 3]
expected: FAIL
[.item 5]
expected: FAIL
[.item 6]
expected: FAIL