From a3dd74fafab6ef7b95acbe56fad8f32a7e198748 Mon Sep 17 00:00:00 2001 From: boombuler Date: Thu, 8 Mar 2018 07:27:35 +0100 Subject: [PATCH] only set the cursor if the mouse is over the toplevel --- src/OSX/Avalonia.MonoMac/TopLevelImpl.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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);