diff --git a/desktop/src/input.rs b/desktop/src/input.rs index 32e55a3b85..4b74cd35de 100644 --- a/desktop/src/input.rs +++ b/desktop/src/input.rs @@ -6,6 +6,7 @@ use crate::ui::{MULTICLICK_ALLOWED_TRAVEL, MULTICLICK_TIMEOUT, PINCH_ZOOM_SPEED, use crate::wrapper::messages::{DesktopWrapperMessage, InputMessage, ModifierKeys, MouseKeys, PointerState, ScrollDelta}; pub(crate) struct InputState { + start: Instant, viewport_info: Option, pointer_lock_position: Option>, modifier_keys: ModifierKeys, @@ -29,6 +30,7 @@ impl InputAction { impl InputState { pub(crate) fn new() -> Self { Self { + start: Instant::now(), viewport_info: None, pointer_lock_position: None, modifier_keys: ModifierKeys::empty(), @@ -189,6 +191,7 @@ impl InputState { PointerState { editor_position: (self.pointer_position.x / self.scale(), self.pointer_position.y / self.scale()).into(), mouse_keys: self.pointer_keys, + time: Some(self.start.elapsed().as_secs_f64() * 1000.), ..Default::default() } } diff --git a/editor/src/messages/input_mapper/utility_types/pointer.rs b/editor/src/messages/input_mapper/utility_types/pointer.rs index 9243e12d2d..f1b989950d 100644 --- a/editor/src/messages/input_mapper/utility_types/pointer.rs +++ b/editor/src/messages/input_mapper/utility_types/pointer.rs @@ -56,6 +56,7 @@ pub struct PointerState { pub position: ViewportPosition, pub mouse_keys: MouseKeys, pub scroll_delta: ScrollDelta, + pub time: Option, pub pressure: Option, pub tilt: Option, pub twist: Option, @@ -77,6 +78,7 @@ pub struct EditorPointerState { pub editor_position: EditorPosition, pub mouse_keys: MouseKeys, pub scroll_delta: ScrollDelta, + pub time: Option, pub pressure: Option, pub tilt: Option, pub twist: Option, @@ -101,6 +103,7 @@ impl EditorPointerState { position: (viewport.logical(self.editor_position) - viewport.offset()).into(), mouse_keys: self.mouse_keys, scroll_delta: self.scroll_delta, + time: self.time, pressure: self.pressure, tilt: self.tilt, twist: self.twist,