libservo: Remove TouchEventType argument from WebView::notify_scroll_event (#37588)

The compositor always does the same thing with these events regardless
of the phase, so I think it is completely unecessary.

Testing: This shouldn't change behavior at all, so is covered by
existing tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-06-20 15:59:01 +02:00 committed by GitHub
parent ce4da2bf97
commit 80a7de8c9c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 26 additions and 55 deletions

View file

@ -19,7 +19,7 @@ use servo::webrender_api::units::{DeviceIntPoint, DeviceIntSize};
use servo::{
AllowOrDenyRequest, AuthenticationRequest, FilterPattern, FormControl, GamepadHapticEffectType,
KeyboardEvent, LoadStatus, PermissionRequest, Servo, ServoDelegate, ServoError, SimpleDialog,
TouchEventType, WebDriverCommandMsg, WebView, WebViewBuilder, WebViewDelegate,
WebDriverCommandMsg, WebView, WebViewBuilder, WebViewDelegate,
};
use url::Url;
@ -350,36 +350,36 @@ impl RunningAppState {
0.0,
-self.inner().window.page_height() + 2.0 * LINE_HEIGHT,
));
webview.notify_scroll_event(scroll_location, origin, TouchEventType::Move);
webview.notify_scroll_event(scroll_location, origin);
})
.shortcut(Modifiers::empty(), Key::PageUp, || {
let scroll_location = ScrollLocation::Delta(Vector2D::new(
0.0,
self.inner().window.page_height() - 2.0 * LINE_HEIGHT,
));
webview.notify_scroll_event(scroll_location, origin, TouchEventType::Move);
webview.notify_scroll_event(scroll_location, origin);
})
.shortcut(Modifiers::empty(), Key::Home, || {
webview.notify_scroll_event(ScrollLocation::Start, origin, TouchEventType::Move);
webview.notify_scroll_event(ScrollLocation::Start, origin);
})
.shortcut(Modifiers::empty(), Key::End, || {
webview.notify_scroll_event(ScrollLocation::End, origin, TouchEventType::Move);
webview.notify_scroll_event(ScrollLocation::End, origin);
})
.shortcut(Modifiers::empty(), Key::ArrowUp, || {
let location = ScrollLocation::Delta(Vector2D::new(0.0, 3.0 * LINE_HEIGHT));
webview.notify_scroll_event(location, origin, TouchEventType::Move);
webview.notify_scroll_event(location, origin);
})
.shortcut(Modifiers::empty(), Key::ArrowDown, || {
let location = ScrollLocation::Delta(Vector2D::new(0.0, -3.0 * LINE_HEIGHT));
webview.notify_scroll_event(location, origin, TouchEventType::Move);
webview.notify_scroll_event(location, origin);
})
.shortcut(Modifiers::empty(), Key::ArrowLeft, || {
let location = ScrollLocation::Delta(Vector2D::new(LINE_HEIGHT, 0.0));
webview.notify_scroll_event(location, origin, TouchEventType::Move);
webview.notify_scroll_event(location, origin);
})
.shortcut(Modifiers::empty(), Key::ArrowRight, || {
let location = ScrollLocation::Delta(Vector2D::new(-LINE_HEIGHT, 0.0));
webview.notify_scroll_event(location, origin, TouchEventType::Move);
webview.notify_scroll_event(location, origin);
});
}
}

View file

@ -588,7 +588,7 @@ impl WindowPortsMethods for Window {
webview.notify_input_event(InputEvent::MouseLeave(MouseLeaveEvent::new(point)));
}
},
WindowEvent::MouseWheel { delta, phase, .. } => {
WindowEvent::MouseWheel { delta, .. } => {
let (mut dx, mut dy, mode) = match delta {
MouseScrollDelta::LineDelta(dx, dy) => {
(dx as f64, (dy * LINE_HEIGHT) as f64, WheelMode::DeltaLine)
@ -618,11 +618,10 @@ impl WindowPortsMethods for Window {
}
let scroll_location = ScrollLocation::Delta(Vector2D::new(dx as f32, dy as f32));
let phase = winit_phase_to_touch_event_type(phase);
// Send events
webview.notify_input_event(InputEvent::Wheel(WheelEvent::new(delta, point)));
webview.notify_scroll_event(scroll_location, point.to_i32(), phase);
webview.notify_scroll_event(scroll_location, point.to_i32());
},
WindowEvent::Touch(touch) => {
webview.notify_input_event(InputEvent::Touch(TouchEvent::new(

View file

@ -481,11 +481,8 @@ impl RunningAppState {
pub fn scroll_start(&self, dx: f32, dy: f32, x: i32, y: i32) {
let delta = Vector2D::new(dx, dy);
let scroll_location = ScrollLocation::Delta(delta);
self.active_webview().notify_scroll_event(
scroll_location,
Point2D::new(x, y),
TouchEventType::Down,
);
self.active_webview()
.notify_scroll_event(scroll_location, Point2D::new(x, y));
self.perform_updates();
}
@ -495,11 +492,8 @@ impl RunningAppState {
pub fn scroll(&self, dx: f32, dy: f32, x: i32, y: i32) {
let delta = Vector2D::new(dx, dy);
let scroll_location = ScrollLocation::Delta(delta);
self.active_webview().notify_scroll_event(
scroll_location,
Point2D::new(x, y),
TouchEventType::Move,
);
self.active_webview()
.notify_scroll_event(scroll_location, Point2D::new(x, y));
self.perform_updates();
}
@ -510,11 +504,8 @@ impl RunningAppState {
pub fn scroll_end(&self, dx: f32, dy: f32, x: i32, y: i32) {
let delta = Vector2D::new(dx, dy);
let scroll_location = ScrollLocation::Delta(delta);
self.active_webview().notify_scroll_event(
scroll_location,
Point2D::new(x, y),
TouchEventType::Up,
);
self.active_webview()
.notify_scroll_event(scroll_location, Point2D::new(x, y));
self.perform_updates();
}