From 5b84d7421f44c8bc00999071f2b3d46d238a9946 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 23 Jan 2025 21:49:07 +0100 Subject: Fix controller double click not working sometimes --- src/GlobalHotkeysJoystick.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/GlobalHotkeysJoystick.cpp') diff --git a/src/GlobalHotkeysJoystick.cpp b/src/GlobalHotkeysJoystick.cpp index 55c6e43..b79e799 100644 --- a/src/GlobalHotkeysJoystick.cpp +++ b/src/GlobalHotkeysJoystick.cpp @@ -155,15 +155,20 @@ namespace gsr { return; if(event.number == 8 && event.value == 1) { - ++num_times_clicked; - if(num_times_clicked == 1) - double_click_clock.restart(); - else if(num_times_clicked == 2 && double_click_clock.restart() >= double_click_timeout_seconds) - num_times_clicked = 0; - - if(num_times_clicked == 2) { - save_replay = true; - num_times_clicked = 0; + const double now = double_click_clock.get_elapsed_time_seconds(); + if(!prev_time_clicked.has_value()) { + prev_time_clicked = now; + return; + } + + if(prev_time_clicked.has_value()) { + const bool double_clicked = (now - prev_time_clicked.value()) < double_click_timeout_seconds; + if(double_clicked) { + save_replay = true; + prev_time_clicked.reset(); + } else { + prev_time_clicked = now; + } } } } -- cgit v1.2.3