fix multitap for keyboard events, in a way that doesnt break scrolling etc

This commit is contained in:
Chris Forbes
2011-10-10 13:07:31 +13:00
parent 3027c9d6f2
commit dc8726a6a0
3 changed files with 7 additions and 7 deletions

View File

@@ -70,5 +70,6 @@ namespace OpenRA
public string KeyName;
public Modifiers Modifiers;
public int VirtKey;
public int MultiTapCount;
}
}

View File

@@ -26,13 +26,10 @@ public static class MultiTapDetection
return clickHistory.GetTapCount(xy);
}
static readonly string[] KeyNameModifiers = new [] { "", "", "DoubleTapOf_", "TripleTapOf_" };
public static string DetectFromKeyboard(string KeyName)
public static int DetectFromKeyboard(string KeyName)
{
var keyHistory = KeyHistoryCache[KeyName];
var count = keyHistory.GetTapCount(int2.Zero);
return KeyNameModifiers[count];
return keyHistory.GetTapCount(int2.Zero);
}
}

View File

@@ -116,14 +116,16 @@ namespace OpenRA.Renderer.SdlCommon
case Sdl.SDL_KEYUP:
{
var keyName = Sdl.SDL_GetKeyName( e.key.keysym.sym );
var keyEvent = new KeyInput
{
Event = KeyInputEvent.Up,
Modifiers = mods,
UnicodeChar = (char)e.key.keysym.unicode,
// KeyName = MultiTapDetection.DetectFromKeyboard(Sdl.SDL_GetKeyName( e.key.keysym.sym )),
KeyName = Sdl.SDL_GetKeyName( e.key.keysym.sym ),
VirtKey = e.key.keysym.sym
VirtKey = e.key.keysym.sym,
MultiTapCount = MultiTapDetection.DetectFromKeyboard(keyName)
};
inputHandler.OnKeyInput( keyEvent );