mirror of
https://github.com/slint-ui/slint.git
synced 2025-12-23 09:19:32 +00:00
Updated servo revision and fix api changes
This commit is contained in:
parent
9ad155e69a
commit
e1962756d4
2 changed files with 14 additions and 15 deletions
|
|
@ -43,8 +43,8 @@ wgpu-hal = "27.0.2"
|
|||
wgpu-core = "27.0.1"
|
||||
wgpu = { version = "27.0.1", features = ["metal"] }
|
||||
|
||||
libservo = { git = "https://github.com/servo/servo", rev = "6357fc8" }
|
||||
embedder_traits = { git = "https://github.com/servo/servo", rev = "6357fc8", features = ["baked-default-resources"] }
|
||||
libservo = { git = "https://github.com/servo/servo", rev = "8433bdab" }
|
||||
embedder_traits = { git = "https://github.com/servo/servo", rev = "8433bdab", features = ["baked-default-resources"] }
|
||||
|
||||
i-slint-core = { path = "../../internal/core" }
|
||||
|
||||
|
|
|
|||
|
|
@ -6,18 +6,15 @@ use std::rc::Rc;
|
|||
use url::Url;
|
||||
use winit::dpi::PhysicalSize;
|
||||
|
||||
use euclid::{Box2D, Point2D, Size2D, Vector2D};
|
||||
use euclid::{Box2D, Point2D, Size2D};
|
||||
|
||||
use i_slint_core::items::{ColorScheme, PointerEvent, PointerEventKind};
|
||||
use slint::{ComponentHandle, platform::PointerEventButton};
|
||||
|
||||
use servo::{
|
||||
InputEvent, MouseButton, MouseButtonAction, MouseButtonEvent, MouseMoveEvent, Theme,
|
||||
TouchEvent, TouchEventType, TouchId,
|
||||
webrender_api::{
|
||||
ScrollLocation,
|
||||
units::{DevicePixel, DevicePoint},
|
||||
},
|
||||
InputEvent, MouseButton, MouseButtonAction, MouseButtonEvent, MouseMoveEvent, Scroll, Theme,
|
||||
TouchEvent, TouchEventType, TouchId, WebViewPoint,
|
||||
webrender_api::units::{DevicePixel, DevicePoint, DeviceVector2D},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
|
|
@ -88,11 +85,12 @@ fn on_scroll(adapter: Rc<SlintServoAdapter>) {
|
|||
|
||||
let point = DevicePoint::new(initial_x * scale_factor, initial_y * scale_factor);
|
||||
|
||||
let moved_by = Vector2D::new(delta_x, delta_y);
|
||||
let moved_by = DeviceVector2D::new(delta_x, delta_y);
|
||||
|
||||
// Invert delta to match Servo's coordinate system
|
||||
let servo_delta = -moved_by;
|
||||
|
||||
webview.notify_scroll_event(ScrollLocation::Delta(servo_delta), point.to_i32());
|
||||
webview.notify_scroll_event(Scroll::Delta(servo_delta.into()), point.into());
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -148,7 +146,8 @@ fn on_pointer(adapter: Rc<SlintServoAdapter>) {
|
|||
|
||||
let point = DevicePoint::new(x * scale_factor, y * scale_factor);
|
||||
|
||||
let input_event = convert_slint_pointer_event_to_servo_input_event(&pointer_event, point);
|
||||
let input_event =
|
||||
convert_slint_pointer_event_to_servo_input_event(&pointer_event, point.into());
|
||||
|
||||
webview.notify_input_event(input_event);
|
||||
});
|
||||
|
|
@ -158,7 +157,7 @@ fn on_pointer(adapter: Rc<SlintServoAdapter>) {
|
|||
/// Distinguishes between touch and mouse events for proper handling.
|
||||
fn convert_slint_pointer_event_to_servo_input_event(
|
||||
pointer_event: &PointerEvent,
|
||||
point: DevicePoint,
|
||||
point: WebViewPoint,
|
||||
) -> InputEvent {
|
||||
if pointer_event.is_touch {
|
||||
handle_touch_events(pointer_event, point)
|
||||
|
|
@ -167,7 +166,7 @@ fn convert_slint_pointer_event_to_servo_input_event(
|
|||
}
|
||||
}
|
||||
|
||||
fn handle_touch_events(pointer_event: &PointerEvent, point: DevicePoint) -> InputEvent {
|
||||
fn handle_touch_events(pointer_event: &PointerEvent, point: WebViewPoint) -> InputEvent {
|
||||
let touch_id = TouchId(1);
|
||||
let touch_event = match pointer_event.kind {
|
||||
PointerEventKind::Down => TouchEvent::new(TouchEventType::Down, touch_id, point),
|
||||
|
|
@ -177,7 +176,7 @@ fn handle_touch_events(pointer_event: &PointerEvent, point: DevicePoint) -> Inpu
|
|||
InputEvent::Touch(touch_event)
|
||||
}
|
||||
|
||||
fn _handle_mouse_events(pointer_event: &PointerEvent, point: DevicePoint) -> InputEvent {
|
||||
fn _handle_mouse_events(pointer_event: &PointerEvent, point: WebViewPoint) -> InputEvent {
|
||||
let button = _get_mouse_button(pointer_event);
|
||||
match pointer_event.kind {
|
||||
PointerEventKind::Down => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue