private void DeviceOnKeyboardInput(object sender, KeyboardInputEventArgs e) { if ((int)e.Key == 255) { // discard "fake keys" which are part of an escaped sequence return; } try { KeyUtils.CorrectRawInputData(e); //Debug.WriteLine($"RawInput {e.Key} {e.MakeCode} {e.ScanCodeFlags} {e.GetDeviceKey()}", "InputEvents"); if (e.ScanCodeFlags.HasFlag(ScanCodeFlags.Break)) { pressedKeySequence.RemoveAll(k => k == e.Key); KeyUp?.Invoke(sender, e); } else { if (!pressedKeySequence.Contains(e.Key)) { pressedKeySequence.Add(e.Key); } KeyDown?.Invoke(sender, e); } } catch (Exception exc) { Global.logger.Error("Exception while handling keyboard input. Error: " + exc.ToString()); } }
private void DeviceOnKeyboardInput(object sender, KeyboardInputEventArgs e) { if ((int)e.Key == 255) { // discard "fake keys" which are part of an escaped sequence return; } KeyUtils.CorrectRawInputData(e); //Debug.WriteLine($"RawInput {e.Key} {e.MakeCode} {e.ScanCodeFlags} {e.GetDeviceKey()}", "InputEvents"); if (e.ScanCodeFlags.HasFlag(ScanCodeFlags.Break)) { pressedKeySequence.RemoveAll(k => k == e.Key); KeyUp?.Invoke(sender, e); } else { if (!pressedKeySequence.Contains(e.Key)) { pressedKeySequence.Add(e.Key); } KeyDown?.Invoke(sender, e); } }