void Keyboard_KeyPressed(KeyboardButtonCode keyCode, uint keyChar) { KeyIdentifier key = InputMap.GetKey(keyCode); repeatTimeout = REPEAT_INTERVAL_START; context.ProcessKeyDown(key, buildModifier()); if (key == KeyIdentifier.KI_BACK || key == KeyIdentifier.KI_DELETE) { holdChar = 0; holdKey = key; } else if (keyChar >= 32) { holdKey = key; holdChar = (ushort)keyChar; context.ProcessTextInput(holdChar); } else if (key == KeyIdentifier.KI_RETURN) { holdKey = key; holdChar = (ushort)'\n'; context.ProcessTextInput(holdChar); } else if (key == KeyIdentifier.KI_LEFT || key == KeyIdentifier.KI_RIGHT || key == KeyIdentifier.KI_UP || key == KeyIdentifier.KI_DOWN) { holdKey = key; holdChar = 0; } else { holdChar = 0; holdKey = KeyIdentifier.KI_UNKNOWN; } }
void Keyboard_KeyReleased(KeyboardButtonCode keyCode) { KeyIdentifier key = InputMap.GetKey(keyCode); context.ProcessKeyUp(key, buildModifier()); if (holdKey == key) { holdKey = KeyIdentifier.KI_UNKNOWN; } }