mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-07 00:29:15 +00:00
LibWeb/DOM: Move pseudo-element scroll offsets into PseudoElement
This commit is contained in:
parent
2c7310553a
commit
f98312d022
Notes:
github-actions[bot]
2025-06-19 11:36:37 +00:00
Author: https://github.com/AtkinsSJ
Commit: f98312d022
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5132
Reviewed-by: https://github.com/tcl3
4 changed files with 33 additions and 19 deletions
|
@ -96,15 +96,13 @@ CSSPixelPoint PaintableBox::scroll_offset() const
|
|||
}
|
||||
|
||||
auto const& node = layout_node();
|
||||
if (node.is_generated_for_before_pseudo_element())
|
||||
return node.pseudo_element_generator()->scroll_offset(DOM::Element::ScrollOffsetFor::PseudoBefore);
|
||||
if (node.is_generated_for_after_pseudo_element())
|
||||
return node.pseudo_element_generator()->scroll_offset(DOM::Element::ScrollOffsetFor::PseudoAfter);
|
||||
if (auto pseudo_element = node.generated_for_pseudo_element(); pseudo_element.has_value())
|
||||
return node.pseudo_element_generator()->scroll_offset(*pseudo_element);
|
||||
|
||||
if (!(dom_node() && is<DOM::Element>(*dom_node())))
|
||||
return {};
|
||||
|
||||
return static_cast<DOM::Element const*>(dom_node())->scroll_offset(DOM::Element::ScrollOffsetFor::Self);
|
||||
return static_cast<DOM::Element const*>(dom_node())->scroll_offset({});
|
||||
}
|
||||
|
||||
void PaintableBox::set_scroll_offset(CSSPixelPoint offset)
|
||||
|
@ -127,12 +125,10 @@ void PaintableBox::set_scroll_offset(CSSPixelPoint offset)
|
|||
return;
|
||||
|
||||
auto& node = layout_node();
|
||||
if (node.is_generated_for_before_pseudo_element()) {
|
||||
node.pseudo_element_generator()->set_scroll_offset(DOM::Element::ScrollOffsetFor::PseudoBefore, offset);
|
||||
} else if (node.is_generated_for_after_pseudo_element()) {
|
||||
node.pseudo_element_generator()->set_scroll_offset(DOM::Element::ScrollOffsetFor::PseudoAfter, offset);
|
||||
if (auto pseudo_element = node.generated_for_pseudo_element(); pseudo_element.has_value()) {
|
||||
node.pseudo_element_generator()->set_scroll_offset(*pseudo_element, offset);
|
||||
} else if (is<DOM::Element>(*dom_node())) {
|
||||
static_cast<DOM::Element*>(dom_node())->set_scroll_offset(DOM::Element::ScrollOffsetFor::Self, offset);
|
||||
static_cast<DOM::Element*>(dom_node())->set_scroll_offset({}, offset);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue