mirror of
https://github.com/servo/servo.git
synced 2025-08-11 16:35:33 +01:00
Don't translate point for independent stacking contexts
I took the test for hit_test from: https://github.com/servo/servo/pull/15047/commits/602b45a3724747e1be767605c523c510846cfbf6 Thank you emilio
This commit is contained in:
parent
602b45a372
commit
65f3ac7d19
1 changed files with 8 additions and 7 deletions
|
@ -55,11 +55,10 @@ impl DisplayList {
|
||||||
scroll_offsets: &ScrollOffsetMap)
|
scroll_offsets: &ScrollOffsetMap)
|
||||||
-> Option<usize> {
|
-> Option<usize> {
|
||||||
let mut result = Vec::new();
|
let mut result = Vec::new();
|
||||||
let mut translated_point = client_point.clone();
|
|
||||||
let mut traversal = DisplayListTraversal::new(self);
|
let mut traversal = DisplayListTraversal::new(self);
|
||||||
self.text_index_contents(node,
|
self.text_index_contents(node,
|
||||||
&mut traversal,
|
&mut traversal,
|
||||||
&mut translated_point,
|
client_point,
|
||||||
client_point,
|
client_point,
|
||||||
scroll_offsets,
|
scroll_offsets,
|
||||||
&mut result);
|
&mut result);
|
||||||
|
@ -69,30 +68,32 @@ impl DisplayList {
|
||||||
pub fn text_index_contents<'a>(&self,
|
pub fn text_index_contents<'a>(&self,
|
||||||
node: OpaqueNode,
|
node: OpaqueNode,
|
||||||
traversal: &mut DisplayListTraversal<'a>,
|
traversal: &mut DisplayListTraversal<'a>,
|
||||||
translated_point: &mut Point2D<Au>,
|
translated_point: &Point2D<Au>,
|
||||||
client_point: &Point2D<Au>,
|
client_point: &Point2D<Au>,
|
||||||
scroll_offsets: &ScrollOffsetMap,
|
scroll_offsets: &ScrollOffsetMap,
|
||||||
result: &mut Vec<usize>) {
|
result: &mut Vec<usize>) {
|
||||||
while let Some(item) = traversal.next() {
|
while let Some(item) = traversal.next() {
|
||||||
match item {
|
match item {
|
||||||
&DisplayItem::PushStackingContext(ref stacking_context_item) => {
|
&DisplayItem::PushStackingContext(ref stacking_context_item) => {
|
||||||
|
let mut point = *translated_point;
|
||||||
DisplayList::translate_point(&stacking_context_item.stacking_context,
|
DisplayList::translate_point(&stacking_context_item.stacking_context,
|
||||||
translated_point,
|
&mut point,
|
||||||
client_point);
|
client_point);
|
||||||
self.text_index_contents(node,
|
self.text_index_contents(node,
|
||||||
traversal,
|
traversal,
|
||||||
translated_point,
|
&point,
|
||||||
client_point,
|
client_point,
|
||||||
scroll_offsets,
|
scroll_offsets,
|
||||||
result);
|
result);
|
||||||
}
|
}
|
||||||
&DisplayItem::PushScrollRoot(ref item) => {
|
&DisplayItem::PushScrollRoot(ref item) => {
|
||||||
|
let mut point = *translated_point;
|
||||||
DisplayList::scroll_root(&item.scroll_root,
|
DisplayList::scroll_root(&item.scroll_root,
|
||||||
translated_point,
|
&mut point,
|
||||||
scroll_offsets);
|
scroll_offsets);
|
||||||
self.text_index_contents(node,
|
self.text_index_contents(node,
|
||||||
traversal,
|
traversal,
|
||||||
translated_point,
|
&point,
|
||||||
client_point,
|
client_point,
|
||||||
scroll_offsets,
|
scroll_offsets,
|
||||||
result);
|
result);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue