From d4a8b3b38e128d036934dd5792a8460b8c7e478e Mon Sep 17 00:00:00 2001 From: Bi Fuguo <1782765876@qq.com> Date: Fri, 21 Feb 2025 14:01:02 +0800 Subject: [PATCH] fix touch event wrong coordinates. pageX, pageY, clientX, clientY etc. (#35550) Signed-off-by: kongbai1996 <1782765876@qq.com> --- components/script/dom/document.rs | 10 ++++++---- 1 file 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::(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,