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}