fix multitap for keyboard events, in a way that doesnt break scrolling etc
This commit is contained in:
@@ -70,5 +70,6 @@ namespace OpenRA
|
||||
public string KeyName;
|
||||
public Modifiers Modifiers;
|
||||
public int VirtKey;
|
||||
public int MultiTapCount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user