Update web_sys to avoid deprecated API
This commit is contained in:
1 parent
45980f9a1e
commit
fcf776e60f
1 file changed
+29
-14
@@ -1,11 +1,12 @@
|
|||||||
use crate::geometry::{ClientPoint, Coordinates, ElementPoint, PagePoint, ScreenPoint};
|
use crate::geometry::{ClientPoint, Coordinates, ElementPoint, PagePoint, ScreenPoint};
|
||||||
use crate::input_data::{decode_mouse_button_set, MouseButton};
|
use crate::input_data::{decode_key_location, decode_mouse_button_set, MouseButton};
|
||||||
use crate::on::{
|
use crate::on::{
|
||||||
AnimationData, CompositionData, KeyboardData, MouseData, PointerData, TouchData,
|
AnimationData, CompositionData, KeyboardData, MouseData, PointerData, TouchData,
|
||||||
TransitionData, WheelData,
|
TransitionData, WheelData,
|
||||||
};
|
};
|
||||||
use crate::KeyCode;
|
use keyboard_types::{Code, Key, Modifiers};
|
||||||
use keyboard_types::Modifiers;
|
use std::convert::TryInto;
|
||||||
|
use std::str::FromStr;
|
||||||
use wasm_bindgen::JsCast;
|
use wasm_bindgen::JsCast;
|
||||||
use web_sys::{
|
use web_sys::{
|
||||||
AnimationEvent, CompositionEvent, Event, KeyboardEvent, MouseEvent, PointerEvent, TouchEvent,
|
AnimationEvent, CompositionEvent, Event, KeyboardEvent, MouseEvent, PointerEvent, TouchEvent,
|
||||||
@@ -56,18 +57,32 @@ impl From<&CompositionEvent> for CompositionData {
|
|||||||
|
|
||||||
impl From<&KeyboardEvent> for KeyboardData {
|
impl From<&KeyboardEvent> for KeyboardData {
|
||||||
fn from(e: &KeyboardEvent) -> Self {
|
fn from(e: &KeyboardEvent) -> Self {
|
||||||
Self {
|
let mut modifiers = Modifiers::empty();
|
||||||
alt_key: e.alt_key(),
|
|
||||||
char_code: e.char_code(),
|
if e.alt_key() {
|
||||||
key: e.key(),
|
modifiers.insert(Modifiers::ALT);
|
||||||
key_code: KeyCode::from_raw_code(e.key_code() as u8),
|
|
||||||
ctrl_key: e.ctrl_key(),
|
|
||||||
location: e.location() as usize,
|
|
||||||
meta_key: e.meta_key(),
|
|
||||||
repeat: e.repeat(),
|
|
||||||
shift_key: e.shift_key(),
|
|
||||||
which: e.which() as usize,
|
|
||||||
}
|
}
|
||||||
|
if e.ctrl_key() {
|
||||||
|
modifiers.insert(Modifiers::CONTROL);
|
||||||
|
}
|
||||||
|
if e.meta_key() {
|
||||||
|
modifiers.insert(Modifiers::META);
|
||||||
|
}
|
||||||
|
if e.shift_key() {
|
||||||
|
modifiers.insert(Modifiers::SHIFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
Self::new(
|
||||||
|
Key::from_str(&e.key()).expect("could not parse key"),
|
||||||
|
Code::from_str(&e.code()).expect("could not parse code"),
|
||||||
|
decode_key_location(
|
||||||
|
e.location()
|
||||||
|
.try_into()
|
||||||
|
.expect("could not convert location to u32"),
|
||||||
|
),
|
||||||
|
e.repeat(),
|
||||||
|
modifiers,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user