diff --git a/src/OSX/Avalonia.MonoMac/TopLevelImpl.cs b/src/OSX/Avalonia.MonoMac/TopLevelImpl.cs index 9dc6c45745..a655bc1ec5 100644 --- a/src/OSX/Avalonia.MonoMac/TopLevelImpl.cs +++ b/src/OSX/Avalonia.MonoMac/TopLevelImpl.cs @@ -39,6 +39,7 @@ namespace Avalonia.MonoMac private NSTrackingArea _area; private NSCursor _cursor; private bool _nonUiRedrawQueued; + private bool _isMouseOver; public CGSize PixelSize { get; set; } @@ -135,7 +136,8 @@ namespace Avalonia.MonoMac if (_cursor != null) { AddCursorRect(Frame, _cursor); - _cursor.Set(); + if (_isMouseOver) + _cursor.Set(); } } @@ -302,10 +304,17 @@ namespace Avalonia.MonoMac public override void MouseExited(NSEvent theEvent) { + _isMouseOver = false; MouseEvent(theEvent, RawMouseEventType.LeaveWindow); base.MouseExited(theEvent); } + public override void MouseEntered(NSEvent theEvent) + { + _isMouseOver = true; + base.MouseEntered(theEvent); + } + void KeyboardEvent(RawKeyEventType type, NSEvent ev) { var code = KeyTransform.TransformKeyCode(ev.KeyCode);