Browse Source

Don't send KeyUp/KeyDown events for Key.None.

pull/9679/head
Steven Kirk 4 years ago
parent
commit
cc7427dd72
  1. 28
      src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs

28
src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs

@ -134,13 +134,18 @@ namespace Avalonia.Win32
case WindowsMessage.WM_KEYDOWN: case WindowsMessage.WM_KEYDOWN:
case WindowsMessage.WM_SYSKEYDOWN: case WindowsMessage.WM_SYSKEYDOWN:
{ {
e = new RawKeyEventArgs( var key = KeyInterop.KeyFromVirtualKey(ToInt32(wParam), ToInt32(lParam));
WindowsKeyboardDevice.Instance,
timestamp, if (key != Key.None)
_owner, {
RawKeyEventType.KeyDown, e = new RawKeyEventArgs(
KeyInterop.KeyFromVirtualKey(ToInt32(wParam), ToInt32(lParam)), WindowsKeyboardDevice.Instance,
WindowsKeyboardDevice.Instance.Modifiers); timestamp,
_owner,
RawKeyEventType.KeyDown,
key,
WindowsKeyboardDevice.Instance.Modifiers);
}
break; break;
} }
@ -159,13 +164,18 @@ namespace Avalonia.Win32
case WindowsMessage.WM_KEYUP: case WindowsMessage.WM_KEYUP:
case WindowsMessage.WM_SYSKEYUP: case WindowsMessage.WM_SYSKEYUP:
{ {
e = new RawKeyEventArgs( var key = KeyInterop.KeyFromVirtualKey(ToInt32(wParam), ToInt32(lParam));
if (key != Key.None)
{
e = new RawKeyEventArgs(
WindowsKeyboardDevice.Instance, WindowsKeyboardDevice.Instance,
timestamp, timestamp,
_owner, _owner,
RawKeyEventType.KeyUp, RawKeyEventType.KeyUp,
KeyInterop.KeyFromVirtualKey(ToInt32(wParam), ToInt32(lParam)), key,
WindowsKeyboardDevice.Instance.Modifiers); WindowsKeyboardDevice.Instance.Modifiers);
}
break; break;
} }
case WindowsMessage.WM_CHAR: case WindowsMessage.WM_CHAR:

Loading…
Cancel
Save