|
|
@@ -5,7 +5,6 @@ using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.ComponentModel;
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
-using System.Reactive.Disposables;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using Avalonia.Controls;
|
|
|
using Avalonia.Input;
|
|
|
@@ -13,7 +12,6 @@ using Avalonia.Input.Raw;
|
|
|
using Avalonia.OpenGL;
|
|
|
using Avalonia.Platform;
|
|
|
using Avalonia.Rendering;
|
|
|
-using Avalonia.Threading;
|
|
|
using Avalonia.Win32.Input;
|
|
|
using Avalonia.Win32.Interop;
|
|
|
using static Avalonia.Win32.Interop.UnmanagedMethods;
|
|
|
@@ -430,7 +428,7 @@ namespace Avalonia.Win32
|
|
|
}
|
|
|
|
|
|
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1305:FieldNamesMustNotUseHungarianNotation", Justification = "Using Win32 naming for consistency.")]
|
|
|
- protected virtual IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
|
|
|
+ protected virtual unsafe IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
|
|
|
{
|
|
|
bool unicode = UnmanagedMethods.IsWindowUnicode(hWnd);
|
|
|
|
|
|
@@ -637,8 +635,12 @@ namespace Avalonia.Win32
|
|
|
new Point(0, 0), GetMouseModifiers(wParam));
|
|
|
break;
|
|
|
case WindowsMessage.WM_TOUCH:
|
|
|
- var touchInputs = new TOUCHINPUT[wParam.ToInt32()];
|
|
|
- if (GetTouchInputInfo(lParam, (uint)wParam.ToInt32(), touchInputs, Marshal.SizeOf<TOUCHINPUT>()))
|
|
|
+ var touchInputCount = wParam.ToInt32();
|
|
|
+
|
|
|
+ var pTouchInputs = stackalloc TOUCHINPUT[touchInputCount];
|
|
|
+ var touchInputs = new Span<TOUCHINPUT>(pTouchInputs, touchInputCount);
|
|
|
+
|
|
|
+ if (GetTouchInputInfo(lParam, (uint)touchInputCount, pTouchInputs, Marshal.SizeOf<TOUCHINPUT>()))
|
|
|
{
|
|
|
foreach (var touchInput in touchInputs)
|
|
|
{
|