diff --git a/Servers/WindowServer/WSWindowManager.cpp b/Servers/WindowServer/WSWindowManager.cpp index cb89688fd1..465eeaec1d 100644 --- a/Servers/WindowServer/WSWindowManager.cpp +++ b/Servers/WindowServer/WSWindowManager.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -641,9 +640,8 @@ void WSWindowManager::process_event_for_doubleclick(WSWindow& window, WSMouseEve metadata.clock.start(); if (elapsed_since_last_click < m_double_click_speed) { auto diff = event.position() - metadata.last_position; - auto distance_travelled = (int)sqrt(diff.x() * diff.x() + diff.y() * diff.y()); - - if (distance_travelled > 4) { + auto distance_travelled_squared = diff.x() * diff.x() + diff.y() * diff.y(); + if (distance_travelled_squared > (m_max_distance_for_double_click * m_max_distance_for_double_click)) { // too far; try again metadata.clock.start(); } else { diff --git a/Servers/WindowServer/WSWindowManager.h b/Servers/WindowServer/WSWindowManager.h index 2f8af077cc..8056a145b6 100644 --- a/Servers/WindowServer/WSWindowManager.h +++ b/Servers/WindowServer/WSWindowManager.h @@ -228,6 +228,7 @@ private: }; DoubleClickInfo m_double_click_info; int m_double_click_speed { 0 }; + int m_max_distance_for_double_click { 4 }; WeakPtr m_active_window; WeakPtr m_hovered_window;