diff options
Diffstat (limited to 'rust/crates/timeline/src/drag_utils.rs')
| -rw-r--r-- | rust/crates/timeline/src/drag_utils.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/rust/crates/timeline/src/drag_utils.rs b/rust/crates/timeline/src/drag_utils.rs new file mode 100644 index 00000000..6dcc6c6f --- /dev/null +++ b/rust/crates/timeline/src/drag_utils.rs @@ -0,0 +1,14 @@ +use time::{MediaTime, TICKS_PER_SECOND}; + +use crate::snap::BASE_TIMELINE_PIXELS_PER_SECOND; + +pub fn get_mouse_time_from_client_x( + client_x: f64, + container_left: f64, + zoom_level: f64, + scroll_left: f64, +) -> MediaTime { + let mouse_x = client_x - container_left + scroll_left; + let seconds = (mouse_x / (BASE_TIMELINE_PIXELS_PER_SECOND * zoom_level)).max(0.0); + MediaTime::from_ticks((seconds * TICKS_PER_SECOND as f64).round() as i64) +} |
