Drop pointerrawupdate support

This commit is contained in:
dAxpeDDa 2023-06-13 09:58:23 +02:00 committed by daxpedda
parent fc046add78
commit a7a8ff0bbb
2 changed files with 2 additions and 29 deletions

View file

@ -69,7 +69,6 @@ And please only add new entries to the top of this list, right below the `# Unre
- On Web, fix touch input not gaining or loosing focus. - On Web, fix touch input not gaining or loosing focus.
- **Breaking:** On Web, dropped support for Safari versions below 13. - **Breaking:** On Web, dropped support for Safari versions below 13.
- On Web, prevent clicks on the canvas to select text. - On Web, prevent clicks on the canvas to select text.
- On Web, use high-frequency pointer input events when supported by the browser.
- On Web, `EventLoopProxy` now implements `Send`. - On Web, `EventLoopProxy` now implements `Send`.
- On Web, `Window` now implements `Send` and `Sync`. - On Web, `Window` now implements `Send` and `Sync`.
- **Breaking:** `WindowExtWebSys::canvas()` now returns an `Option`. - **Breaking:** `WindowExtWebSys::canvas()` now returns an `Option`.

View file

@ -6,10 +6,9 @@ use crate::event::{Force, MouseButton};
use crate::keyboard::ModifiersState; use crate::keyboard::ModifiersState;
use event::ButtonsState; use event::ButtonsState;
use once_cell::unsync::OnceCell;
use wasm_bindgen::prelude::wasm_bindgen; use wasm_bindgen::prelude::wasm_bindgen;
use wasm_bindgen::{JsCast, JsValue}; use wasm_bindgen::{JsCast, JsValue};
use web_sys::{HtmlCanvasElement, PointerEvent}; use web_sys::PointerEvent;
#[allow(dead_code)] #[allow(dead_code)]
pub(super) struct PointerHandler { pub(super) struct PointerHandler {
@ -191,11 +190,7 @@ impl PointerHandler {
let window = canvas_common.window.clone(); let window = canvas_common.window.clone();
let canvas = canvas_common.raw.clone(); let canvas = canvas_common.raw.clone();
self.on_cursor_move = Some(canvas_common.add_event( self.on_cursor_move = Some(canvas_common.add_event(
if has_pointer_raw_support(&canvas) { "pointermove",
"pointerrawupdate"
} else {
"pointermove"
},
move |event: PointerEvent| { move |event: PointerEvent| {
// coalesced events are not available on Safari // coalesced events are not available on Safari
#[wasm_bindgen] #[wasm_bindgen]
@ -311,24 +306,3 @@ impl PointerHandler {
self.on_touch_cancel = None; self.on_touch_cancel = None;
} }
} }
fn has_pointer_raw_support(canvas: &HtmlCanvasElement) -> bool {
thread_local! {
static POINTER_RAW_SUPPORT: OnceCell<bool> = OnceCell::new();
}
POINTER_RAW_SUPPORT.with(|support| {
*support.get_or_init(|| {
#[wasm_bindgen]
extern "C" {
type HtmlCanvasElementExt;
#[wasm_bindgen(method, getter, js_name = onpointerrawupdate)]
fn has_on_pointerrawupdate(this: &HtmlCanvasElementExt) -> JsValue;
}
let canvas: &HtmlCanvasElementExt = canvas.unchecked_ref();
!canvas.has_on_pointerrawupdate().is_undefined()
})
})
}