diff --git a/src/Avalonia.Native.OSX/window.mm b/src/Avalonia.Native.OSX/window.mm index 214925ed47..93a3fcaec7 100644 --- a/src/Avalonia.Native.OSX/window.mm +++ b/src/Avalonia.Native.OSX/window.mm @@ -58,6 +58,11 @@ public: return S_OK; } + virtual void Invalidate (AvnRect rect) + { + [View setNeedsDisplayInRect:[View frame]]; + } + protected: virtual NSWindowStyleMask GetStyle() { diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index f1771b0280..277cbdc2c0 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -139,7 +139,7 @@ namespace Avalonia.Native public void Invalidate(Rect rect) { - //TODO; + _native.Invalidate(new AvnRect { Height = rect.Height, Width = rect.Width, X = rect.X, Y = rect.Y }); } public void SetInputRoot(IInputRoot inputRoot) diff --git a/src/headers/avalonia-native.h b/src/headers/avalonia-native.h index ceb3189590..3082e4b7fd 100644 --- a/src/headers/avalonia-native.h +++ b/src/headers/avalonia-native.h @@ -68,6 +68,7 @@ AVNCOM(IAvnWindowBase, 02) : virtual IUnknown virtual HRESULT Close() = 0; virtual HRESULT GetClientSize(AvnSize*ret) = 0; virtual HRESULT Resize(double width, double height) = 0; + virtual void Invalidate (AvnRect rect) = 0; }; AVNCOM(IAvnWindow, 03) : virtual IAvnWindowBase