diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 0fc2fd9343..22254ada18 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -92,6 +92,7 @@ namespace Avalonia.X11 private unsafe class XImageCursor : CursorImpl, IFramebufferPlatformSurface, IPlatformHandle { + private readonly IntPtr _display; private readonly PixelSize _pixelSize; private readonly UnmanagedBlob _blob; @@ -101,6 +102,7 @@ namespace Avalonia.X11 (bitmap.PixelSize.Width * bitmap.PixelSize.Height * 4); var platformRenderInterface = AvaloniaLocator.Current.GetRequiredService(); + _display = display; _pixelSize = bitmap.PixelSize; _blob = new UnmanagedBlob(size); @@ -128,7 +130,7 @@ namespace Avalonia.X11 public override void Dispose() { - XLib.XcursorImageDestroy(Handle); + XLib.XFreeCursor(_display, Handle); _blob.Dispose(); } diff --git a/src/Avalonia.X11/XLib.cs b/src/Avalonia.X11/XLib.cs index 3500e3c5a9..03dad8e0e2 100644 --- a/src/Avalonia.X11/XLib.cs +++ b/src/Avalonia.X11/XLib.cs @@ -603,9 +603,6 @@ namespace Avalonia.X11 [DllImport(libXCursor)] public static extern IntPtr XcursorImageLoadCursor(IntPtr display, IntPtr image); - [DllImport(libXCursor)] - public static extern IntPtr XcursorImageDestroy(IntPtr image); - public static void XISetMask(ref int mask, XiEventType ev) { mask |= (1 << (int)ev);