mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
LibWeb: Avoid conversion from floating point in CSS position resolution
We can just use division here, since fixed-point division by 2 will compile down to a shift by 1.
This commit is contained in:
parent
99c90e49b6
commit
f57c42fad7
Notes:
sideshowbarker
2024-07-17 21:26:19 +09:00
Author: https://github.com/Zaggy1024 Commit: https://github.com/SerenityOS/serenity/commit/f57c42fad7 Pull-request: https://github.com/SerenityOS/serenity/pull/20898 Reviewed-by: https://github.com/AtkinsSJ Reviewed-by: https://github.com/Hendiadyoin1 Reviewed-by: https://github.com/MacDue Reviewed-by: https://github.com/kalenikaliaksandr ✅
@ -15,36 +15,32 @@ CSSPixelPoint PositionValue::resolved(Layout::Node const& node, CSSPixelRect con
|
||||
// Note: A preset + a none default x/y_relative_to is impossible in the syntax (and makes little sense)
|
||||
CSSPixels x = horizontal_position.visit(
|
||||
[&](HorizontalPreset preset) -> CSSPixels {
|
||||
return rect.width() * [&] {
|
||||
switch (preset) {
|
||||
case HorizontalPreset::Left:
|
||||
return CSSPixels(0.0);
|
||||
case HorizontalPreset::Center:
|
||||
return CSSPixels(0.5);
|
||||
case HorizontalPreset::Right:
|
||||
return CSSPixels(1.0);
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
}();
|
||||
switch (preset) {
|
||||
case HorizontalPreset::Left:
|
||||
return 0;
|
||||
case HorizontalPreset::Center:
|
||||
return rect.width() / 2;
|
||||
case HorizontalPreset::Right:
|
||||
return rect.width();
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
},
|
||||
[&](LengthPercentage length_percentage) -> CSSPixels {
|
||||
return length_percentage.to_px(node, rect.width());
|
||||
});
|
||||
CSSPixels y = vertical_position.visit(
|
||||
[&](VerticalPreset preset) -> CSSPixels {
|
||||
return rect.height() * [&] {
|
||||
switch (preset) {
|
||||
case VerticalPreset::Top:
|
||||
return CSSPixels(0.0);
|
||||
case VerticalPreset::Center:
|
||||
return CSSPixels(0.5);
|
||||
case VerticalPreset::Bottom:
|
||||
return CSSPixels(1.0);
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
}();
|
||||
switch (preset) {
|
||||
case VerticalPreset::Top:
|
||||
return 0;
|
||||
case VerticalPreset::Center:
|
||||
return rect.height() / 2;
|
||||
case VerticalPreset::Bottom:
|
||||
return rect.height();
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
},
|
||||
[&](LengthPercentage length_percentage) -> CSSPixels {
|
||||
return length_percentage.to_px(node, rect.height());
|
||||
|
Loading…
Reference in New Issue
Block a user