Browse Source

only set the cursor if the mouse is over the toplevel

pull/1428/head
boombuler 9 years ago
parent
commit
a3dd74fafa
  1. 11
      src/OSX/Avalonia.MonoMac/TopLevelImpl.cs

11
src/OSX/Avalonia.MonoMac/TopLevelImpl.cs

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

Loading…
Cancel
Save