mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
script: Pass more information to the MouseEvent
constructor (#37672)
- Instead of eagerly computing `pageX` and `pageY`, collect the offset from the content's initial containing block in the compositor and pass that information through to `MouseEvent`. This prevents a layout flush that was happening when eagerly trying to fetch `Document` scroll offsets. - Pass keyboard modifiers properly to `MouseEvent`. - Now all this information is stored and passed as `Point2D` (typed) and `Modifiers` which greatly reduces the amount of arguments that need to be passed around. Testing: It is difficult to test input events as they require WebDriver which isn't completely working yet. I have manually run Speedometer 2.1 and I have verified that this fixes the regression from #37601. Fixes: #37601. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
50cf01cf3d
commit
0346a62214
11 changed files with 374 additions and 369 deletions
|
@ -22,7 +22,7 @@ use std::sync::Arc;
|
|||
|
||||
use base::id::{PipelineId, ScrollTreeNodeId, WebViewId};
|
||||
use crossbeam_channel::Sender;
|
||||
use euclid::{Scale, Size2D};
|
||||
use euclid::{Point2D, Scale, Size2D};
|
||||
use http::{HeaderMap, Method, StatusCode};
|
||||
use ipc_channel::ipc::IpcSender;
|
||||
use log::warn;
|
||||
|
@ -770,10 +770,14 @@ pub struct CompositorHitTestResult {
|
|||
pub pipeline_id: PipelineId,
|
||||
|
||||
/// The hit test point in the item's viewport.
|
||||
pub point_in_viewport: euclid::default::Point2D<f32>,
|
||||
pub point_in_viewport: Point2D<f32, CSSPixel>,
|
||||
|
||||
/// The hit test point relative to the root scroll node content origin / initial
|
||||
/// containing block.
|
||||
pub point_relative_to_initial_containing_block: Point2D<f32, CSSPixel>,
|
||||
|
||||
/// The hit test point relative to the item itself.
|
||||
pub point_relative_to_item: euclid::default::Point2D<f32>,
|
||||
pub point_relative_to_item: Point2D<f32, CSSPixel>,
|
||||
|
||||
/// The node address of the hit test result.
|
||||
pub node: UntrustedNodeAddress,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue