Browse Source

Fix X11 NullCursor

pull/2551/head
MarkusKgit 7 years ago
parent
commit
4ad1acd24e
  1. 8
      src/Avalonia.X11/X11CursorFactory.cs
  2. 3
      src/Avalonia.X11/XLib.cs

8
src/Avalonia.X11/X11CursorFactory.cs

@ -51,7 +51,7 @@ namespace Avalonia.X11
public IPlatformHandle GetCursor(StandardCursorType cursorType)
{
IntPtr handle;
IntPtr handle;
if (cursorType == StandardCursorType.None)
{
handle = _nullCursor;
@ -66,12 +66,12 @@ namespace Avalonia.X11
}
private static IntPtr GetNullCursor(IntPtr display)
{
{
XColor color = new XColor();
byte[] data = new byte[] { 0 };
IntPtr window = XLib.XRootWindow(display, 0);
IntPtr pixmap = XLib.XCreatePixmapFromBitmapData(display, window, data, 1, 1, IntPtr.Zero, IntPtr.Zero, 0);
return XLib.XCreatePixmapCursor(display, pixmap, pixmap, ref color, ref color, 0, 0);
IntPtr pixmap = XLib.XCreateBitmapFromData(display, window, data, 1, 1);
return XLib.XCreatePixmapCursor(display, pixmap, pixmap, ref color, ref color, 0, 0);
}
}
}

3
src/Avalonia.X11/XLib.cs

@ -321,6 +321,9 @@ namespace Avalonia.X11
public static extern IntPtr XCreatePixmapCursor(IntPtr display, IntPtr source, IntPtr mask,
ref XColor foreground_color, ref XColor background_color, int x_hot, int y_hot);
[DllImport(libX11)]
public static extern IntPtr XCreateBitmapFromData(IntPtr display, IntPtr drawable, byte[] data, int width, int height);
[DllImport(libX11)]
public static extern IntPtr XCreatePixmapFromBitmapData(IntPtr display, IntPtr drawable, byte[] data, int width,
int height, IntPtr fg, IntPtr bg, int depth);

Loading…
Cancel
Save