Browse Source

Improved ink test

pull/20366/head
Krzysztof Krysiński 1 month ago
parent
commit
fe84b7dfb0
  1. 11
      src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs
  2. 1
      src/Windows/Avalonia.Win32/WindowImpl.cs

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

@ -89,11 +89,18 @@ namespace Avalonia.Win32
{
Activated?.Invoke();
UpdateInputMethod(GetKeyboardLayout(0));
_inkTestPerformed = false; // Reset ink test flag on activation
if (_wintabEnabled)
{
WintabFuncs.WTEnable(_hCtx.HCtx, true);
WintabFuncs.WTOverlap(_hCtx.HCtx, true);
}
else
{
InitWintab();
}
break;
}
@ -415,7 +422,7 @@ namespace Avalonia.Win32
case WindowsMessage.WM_MOUSEMOVE:
{
if (_nextPointerEventIsInkTest)
if (_nextPointerEventIsInkTest && Math.Abs((int)timestamp - (int)_lastWintabTime) >= 10)
{
if (!IsMessageFromPen())
{
@ -1274,7 +1281,7 @@ namespace Avalonia.Win32
{
if(count == 0)
return;
uint actualSize = 0;
var packets = _wnData.GetDataPackets(Math.Min(count, MaxWintabPacketHistorySize), true, ref actualSize);
foreach (var packet in packets)

1
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -228,6 +228,7 @@ namespace Avalonia.Win32
}
}
s_lastWintabPackets.Clear();
_maxPressure = WintabInfo.GetMaxPressure();
_wintabEnabled = true;
}

Loading…
Cancel
Save