diff options
author | Bi Fuguo <1782765876@qq.com> | 2025-02-21 14:01:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-21 06:01:02 +0000 |
commit | d4a8b3b38e128d036934dd5792a8460b8c7e478e (patch) | |
tree | 6edab18be2c44ff4ab9f71e906caa4aca478c825 /components/script | |
parent | c6cb50c9569104412a1139b44d9933e257aed746 (diff) | |
download | servo-d4a8b3b38e128d036934dd5792a8460b8c7e478e.tar.gz servo-d4a8b3b38e128d036934dd5792a8460b8c7e478e.zip |
fix touch event wrong coordinates. pageX, pageY, clientX, clientY etc. (#35550)
Signed-off-by: kongbai1996 <1782765876@qq.com>
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/document.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 0d2b77a7a9b..5307a6f29cd 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2031,10 +2031,12 @@ impl Document { let target = DomRoot::upcast::<EventTarget>(el); let window = &*self.window; - let client_x = Finite::wrap(event.point.x as f64); - let client_y = Finite::wrap(event.point.y as f64); - let page_x = Finite::wrap(event.point.x as f64 + window.PageXOffset() as f64); - let page_y = Finite::wrap(event.point.y as f64 + window.PageYOffset() as f64); + let client_x = Finite::wrap(hit_test_result.point_in_viewport.x as f64); + let client_y = Finite::wrap(hit_test_result.point_in_viewport.y as f64); + let page_x = + Finite::wrap(hit_test_result.point_in_viewport.x as f64 + window.PageXOffset() as f64); + let page_y = + Finite::wrap(hit_test_result.point_in_viewport.y as f64 + window.PageYOffset() as f64); let touch = Touch::new( window, identifier, &target, client_x, |