From ac704cdaaeaf32e95a414a6ff538997083e3df1c Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 9 Jan 2018 11:07:37 +0200 Subject: [PATCH] Mouse clicks have to be <10 pixels apart to be considered a double click. Closes #170 --- Barotrauma/BarotraumaClient/Source/PlayerInput.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/PlayerInput.cs b/Barotrauma/BarotraumaClient/Source/PlayerInput.cs index eb63c8b82..1ba204ecf 100644 --- a/Barotrauma/BarotraumaClient/Source/PlayerInput.cs +++ b/Barotrauma/BarotraumaClient/Source/PlayerInput.cs @@ -10,8 +10,10 @@ namespace Barotrauma static KeyboardState keyboardState, oldKeyboardState; static double timeSinceClick; + static Point lastClickPosition; - const double doubleClickDelay = 0.4; + const float DoubleClickDelay = 0.4f; + const float MaxDoubleClickDistance = 10.0f; static bool doubleClicked; @@ -147,11 +149,16 @@ namespace Barotrauma oldKeyboardState = keyboardState; keyboardState = Keyboard.GetState(); - + doubleClicked = false; if (LeftButtonClicked()) { - if (timeSinceClick < doubleClickDelay) doubleClicked = true; + if (timeSinceClick < DoubleClickDelay && + (mouseState.Position - lastClickPosition).ToVector2().Length() < MaxDoubleClickDistance) + { + doubleClicked = true; + } + lastClickPosition = mouseState.Position; timeSinceClick = 0.0; } }