diff --git a/native/Avalonia.Native/src/OSX/AvnView.mm b/native/Avalonia.Native/src/OSX/AvnView.mm index 6d1ff7cf12..86bacfb819 100644 --- a/native/Avalonia.Native/src/OSX/AvnView.mm +++ b/native/Avalonia.Native/src/OSX/AvnView.mm @@ -275,7 +275,7 @@ delta.Y = [event deltaY]; } - uint32 timestamp = static_cast([event timestamp] * 1000); + uint64_t timestamp = static_cast([event timestamp] * 1000); auto modifiers = [self getModifiers:[event modifierFlags]]; if(type != Move || @@ -444,7 +444,7 @@ auto key = s_KeyMap[[event keyCode]]; - uint32_t timestamp = static_cast([event timestamp] * 1000); + uint64_t timestamp = static_cast([event timestamp] * 1000); auto modifiers = [self getModifiers:[event modifierFlags]]; if(_parent != nullptr) @@ -657,7 +657,7 @@ [self unmarkText]; - uint32_t timestamp = static_cast([NSDate timeIntervalSinceReferenceDate] * 1000); + uint64_t timestamp = static_cast([NSDate timeIntervalSinceReferenceDate] * 1000); _lastKeyHandled = _parent->BaseEvents->RawTextInputEvent(timestamp, [text UTF8String]); diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 16e1486acc..ef50cdab84 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -460,7 +460,7 @@ auto point = [self translateLocalPoint:avnPoint]; AvnVector delta = { 0, 0 }; - _parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, static_cast([event timestamp] * 1000), AvnInputModifiersNone, point, delta); + _parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, static_cast([event timestamp] * 1000), AvnInputModifiersNone, point, delta); } if(!_isTransitioningToFullScreen) diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 26c3da9d50..b802b1db71 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -220,17 +220,17 @@ namespace Avalonia.Native _parent.PositionChanged?.Invoke(position.ToAvaloniaPixelPoint()); } - void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) + void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, ulong timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { _parent.RawMouseEvent(type, timeStamp, modifiers, point, delta); } - int IAvnWindowBaseEvents.RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key) + int IAvnWindowBaseEvents.RawKeyEvent(AvnRawKeyEventType type, ulong timeStamp, AvnInputModifiers modifiers, uint key) { return _parent.RawKeyEvent(type, timeStamp, modifiers, key).AsComBool(); } - int IAvnWindowBaseEvents.RawTextInputEvent(uint timeStamp, string text) + int IAvnWindowBaseEvents.RawTextInputEvent(ulong timeStamp, string text) { return _parent.RawTextInputEvent(timeStamp, text).AsComBool(); } @@ -286,7 +286,7 @@ namespace Avalonia.Native _native?.Activate(); } - public bool RawTextInputEvent(uint timeStamp, string text) + public bool RawTextInputEvent(ulong timeStamp, string text) { if (_inputRoot is null) return false; @@ -300,7 +300,7 @@ namespace Avalonia.Native return args.Handled; } - public bool RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key) + public bool RawKeyEvent(AvnRawKeyEventType type, ulong timeStamp, AvnInputModifiers modifiers, uint key) { if (_inputRoot is null) return false; @@ -319,7 +319,7 @@ namespace Avalonia.Native return false; } - public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) + public void RawMouseEvent(AvnRawMouseEventType type, ulong timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { if (_inputRoot is null) return; diff --git a/src/Avalonia.Native/avn.idl b/src/Avalonia.Native/avn.idl index 09e9168d8f..a58a00d59d 100644 --- a/src/Avalonia.Native/avn.idl +++ b/src/Avalonia.Native/avn.idl @@ -1,6 +1,7 @@ @clr-namespace Avalonia.Native.Interop @clr-access internal @clr-map bool int +@clr-map u_int64_t ulong @cpp-preamble @@ #pragma once #include "com.h" @@ -583,12 +584,12 @@ interface IAvnWindowBaseEvents : IUnknown void Resized([const] AvnSize& size, AvnPlatformResizeReason reason); void PositionChanged(AvnPoint position); void RawMouseEvent(AvnRawMouseEventType type, - uint timeStamp, + u_int64_t timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta); - bool RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key); - bool RawTextInputEvent(uint timeStamp, [const] char* text); + bool RawKeyEvent(AvnRawKeyEventType type, u_int64_t timeStamp, AvnInputModifiers modifiers, uint key); + bool RawTextInputEvent(u_int64_t timeStamp, [const] char* text); void ScalingChanged(double scaling); void RunRenderPriorityJobs(); void LostFocus();