ratatui_toolkit/widgets/markdown_widget/state/double_click_state/mod.rs
1//! State for tracking double-click detection with deferred single-click handling.
2
3pub mod constructors;
4pub mod methods;
5pub mod traits;
6
7use std::time::Instant;
8
9/// State for tracking double-click detection with deferred single-click handling.
10#[derive(Debug, Clone)]
11pub struct DoubleClickState {
12 /// Time of the last click.
13 pub(crate) last_click_time: Option<Instant>,
14 /// Position of the last click.
15 pub(crate) last_click_pos: Option<(u16, u16)>,
16 /// Pending single-click that hasn't been processed yet.
17 /// Stores: (x, y, timestamp, scroll_offset_at_click_time)
18 pub(crate) pending_single_click: Option<(u16, u16, Instant, usize)>,
19}
20
21impl DoubleClickState {
22 /// Double-click time threshold in milliseconds.
23 pub(crate) const DOUBLE_CLICK_THRESHOLD_MS: u64 = 150;
24}