From 5ff1be5713ef44f034bab57b71f70194827da740 Mon Sep 17 00:00:00 2001 From: Vishnu Tejas E Date: Thu, 22 Jan 2026 22:11:11 +0530 Subject: [PATCH 1/2] Fix triple-click text to select paragraph on desktop --- desktop/src/cef/input/state.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/desktop/src/cef/input/state.rs b/desktop/src/cef/input/state.rs index 79fa65eee1..fcaaa9152a 100644 --- a/desktop/src/cef/input/state.rs +++ b/desktop/src/cef/input/state.rs @@ -139,20 +139,21 @@ impl ClickTracker { let prev_time = record.time; let prev_position = record.position; + let prev_count: ClickCount = record.down_count; let now = Instant::now(); record.time = now; record.position = position; match state { - ElementState::Pressed if record.down_count == ClickCount::Double => { + ElementState::Pressed if record.down_count == ClickCount::Triple => { *record = ClickRecord { down_count: ClickCount::Single, ..*record }; return ClickCount::Single; } - ElementState::Released if record.up_count == ClickCount::Double => { + ElementState::Released if record.up_count == ClickCount::Triple => { *record = ClickRecord { up_count: ClickCount::Single, ..*record @@ -167,7 +168,11 @@ impl ClickTracker { let within_dist = dx <= MULTICLICK_ALLOWED_TRAVEL && dy <= MULTICLICK_ALLOWED_TRAVEL; let within_time = now.saturating_duration_since(prev_time) <= MULTICLICK_TIMEOUT; - let count = if within_time && within_dist { ClickCount::Double } else { ClickCount::Single }; + let count = match (prev_count, within_time, within_dist) { + (ClickCount::Double, true, true) => ClickCount::Triple, + (_, true, true) => ClickCount::Double, + _ => ClickCount::Single, + }; *record = match state { ElementState::Pressed => ClickRecord { down_count: count, ..*record }, @@ -182,12 +187,14 @@ pub(crate) enum ClickCount { #[default] Single, Double, + Triple, } impl From for i32 { fn from(count: ClickCount) -> i32 { match count { ClickCount::Single => 1, ClickCount::Double => 2, + ClickCount::Triple => 3, } } } From 07a807f3bb12cae54a39eea195b0b733631c157f Mon Sep 17 00:00:00 2001 From: Timon Date: Mon, 2 Feb 2026 13:54:51 +0000 Subject: [PATCH 2/2] fixup --- desktop/src/cef/input/state.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/desktop/src/cef/input/state.rs b/desktop/src/cef/input/state.rs index fcaaa9152a..2c3355dca8 100644 --- a/desktop/src/cef/input/state.rs +++ b/desktop/src/cef/input/state.rs @@ -148,17 +148,17 @@ impl ClickTracker { match state { ElementState::Pressed if record.down_count == ClickCount::Triple => { *record = ClickRecord { - down_count: ClickCount::Single, + down_count: ClickCount::Double, ..*record }; - return ClickCount::Single; + return ClickCount::Double; } ElementState::Released if record.up_count == ClickCount::Triple => { *record = ClickRecord { - up_count: ClickCount::Single, + up_count: ClickCount::Double, ..*record }; - return ClickCount::Single; + return ClickCount::Double; } _ => {} }