Browse Source

[osx] make bringtofront work correctly for owned and modal windows.

pull/8232/head
Dan Walmsley 4 years ago
parent
commit
dc1b6a669b
  1. 5
      native/Avalonia.Native/src/OSX/AvnView.mm
  2. 9
      native/Avalonia.Native/src/OSX/AvnWindow.mm
  3. 9
      native/Avalonia.Native/src/OSX/WindowImpl.mm

5
native/Avalonia.Native/src/OSX/AvnView.mm

@ -300,11 +300,6 @@
- (void)mouseDown:(NSEvent *)event
{
if(_parent != nullptr)
{
_parent->BringToFront();
}
_isLeftPressed = true;
_lastMouseDownEvent = event;
[self mouseEvent:event withType:LeftButtonDown];

9
native/Avalonia.Native/src/OSX/AvnWindow.mm

@ -183,11 +183,6 @@
return self;
}
- (void)mouseDown:(NSEvent *)event
{
_parent->BringToFront();
}
- (BOOL)windowShouldClose:(NSWindow *)sender
{
auto window = dynamic_cast<WindowImpl*>(_parent.getRaw());
@ -435,8 +430,10 @@
_parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, static_cast<uint32>([event timestamp] * 1000), AvnInputModifiersNone, point, delta);
}
_parent->BringToFront();
}
break;
break;
case NSEventTypeMouseEntered:
{

9
native/Avalonia.Native/src/OSX/WindowImpl.mm

@ -126,7 +126,14 @@ HRESULT WindowImpl::SetParent(IAvnWindow *parent) {
void WindowImpl::BringToFront()
{
Activate();
if(IsDialog())
{
Activate();
}
else
{
[Window orderFront:nullptr];
}
for(auto iterator = _children.begin(); iterator != _children.end(); iterator++)
{

Loading…
Cancel
Save