From 78f157454aae83a99dd91e65e492c386e97f38fc Mon Sep 17 00:00:00 2001 From: Timon Date: Tue, 24 Mar 2026 01:10:38 +0000 Subject: [PATCH] TEST --- desktop/src/cef/input.rs | 8 ++++++-- desktop/src/cef/input/state.rs | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/desktop/src/cef/input.rs b/desktop/src/cef/input.rs index a13d8fa23e..a186053d0c 100644 --- a/desktop/src/cef/input.rs +++ b/desktop/src/cef/input.rs @@ -6,7 +6,7 @@ mod keymap; use keymap::{ToCharRepresentation, ToNativeKeycode, ToVKBits}; mod state; -pub(crate) use state::{CefModifiers, InputState}; +pub(crate) use state::{CefModifiers, ClickCount, InputState}; use super::consts::{PINCH_ZOOM_SPEED, SCROLL_LINE_HEIGHT, SCROLL_LINE_WIDTH, SCROLL_SPEED_X, SCROLL_SPEED_Y}; @@ -36,7 +36,11 @@ pub(crate) fn handle_window_event(browser: &Browser, input_state: &mut InputStat } }; - let cef_click_count = input_state.mouse_input(mouse_button, state).into(); + let click_count = input_state.mouse_input(mouse_button, state); + if matches!(click_count, ClickCount::Ignore) { + return; + } + let cef_click_count = click_count.into(); let cef_mouse_up = match state { ElementState::Pressed => 0, ElementState::Released => 1, diff --git a/desktop/src/cef/input/state.rs b/desktop/src/cef/input/state.rs index 45d3c9c7ac..fb3de95e38 100644 --- a/desktop/src/cef/input/state.rs +++ b/desktop/src/cef/input/state.rs @@ -173,6 +173,10 @@ impl ClickTracker { } } + if matches!(state, ElementState::Released) && record.down_count != record.up_count { + return ClickCount::Ignore; + } + count } } @@ -183,6 +187,7 @@ pub(crate) enum ClickCount { Single, Double, Triple, + Ignore, } impl From for i32 { fn from(count: ClickCount) -> i32 { @@ -190,6 +195,7 @@ impl From for i32 { ClickCount::Single => 1, ClickCount::Double => 2, ClickCount::Triple => 3, + ClickCount::Ignore => 0, } } }