mirror of
https://github.com/servo/servo.git
synced 2025-08-14 01:45:33 +01:00
layout: Add basic support for getClientRects()
queries (#31696)
This adds basic support for `getClientRects()` by sharing code with the implementation of `getBoundingClientRect()`. In addition to sharing code, it also shares all of the bugs. Primarily, scrolilng positions are not taken into account when return boundary rectangles.
This commit is contained in:
parent
3f3820b3dc
commit
47a4ce467f
15 changed files with 48 additions and 71 deletions
|
@ -179,11 +179,25 @@ pub fn process_content_box_request(
|
|||
requested_node: OpaqueNode,
|
||||
fragment_tree: Option<Arc<FragmentTree>>,
|
||||
) -> Option<Rect<Au>> {
|
||||
fragment_tree?.get_content_box_for_node(requested_node)
|
||||
let rects = fragment_tree?.get_content_boxes_for_node(requested_node);
|
||||
if rects.is_empty() {
|
||||
return None;
|
||||
}
|
||||
|
||||
Some(
|
||||
rects
|
||||
.iter()
|
||||
.fold(Rect::zero(), |unioned_rect, rect| rect.union(&unioned_rect)),
|
||||
)
|
||||
}
|
||||
|
||||
pub fn process_content_boxes_request(_requested_node: OpaqueNode) -> Vec<Rect<Au>> {
|
||||
vec![]
|
||||
pub fn process_content_boxes_request(
|
||||
requested_node: OpaqueNode,
|
||||
fragment_tree: Option<Arc<FragmentTree>>,
|
||||
) -> Vec<Rect<Au>> {
|
||||
fragment_tree
|
||||
.map(|tree| tree.get_content_boxes_for_node(requested_node))
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
pub fn process_node_geometry_request(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue