Browse Source

[OSX] dialogs stay ontop of main window when another app is displayed.

pull/8211/head
Dan Walmsley 4 years ago
parent
commit
84ea185f0f
  1. 4
      native/Avalonia.Native/src/OSX/AvnView.mm
  2. 2
      native/Avalonia.Native/src/OSX/AvnWindow.mm
  3. 2
      native/Avalonia.Native/src/OSX/WindowBaseImpl.mm

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

@ -222,7 +222,7 @@
- (void)mouseEvent:(NSEvent *)event withType:(AvnRawMouseEventType) type - (void)mouseEvent:(NSEvent *)event withType:(AvnRawMouseEventType) type
{ {
bool triggerInputWhenDisabled = type != Move; bool triggerInputWhenDisabled = type != Move && type != LeaveWindow;
if([self ignoreUserInput: triggerInputWhenDisabled]) if([self ignoreUserInput: triggerInputWhenDisabled])
{ {
@ -709,4 +709,4 @@
return [[self accessibilityChild] accessibilityFocusedUIElement]; return [[self accessibilityChild] accessibilityFocusedUIElement];
} }
@end @end

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

@ -378,6 +378,8 @@
_parent->BaseEvents->Deactivated(); _parent->BaseEvents->Deactivated();
[self showAppMenuOnly]; [self showAppMenuOnly];
[self invalidateShadow];
[super resignKeyWindow]; [super resignKeyWindow];
} }

2
native/Avalonia.Native/src/OSX/WindowBaseImpl.mm

@ -558,6 +558,8 @@ void WindowBaseImpl::CreateNSWindow(bool isDialog) {
CleanNSWindow(); CleanNSWindow();
Window = [[AvnPanel alloc] initWithParent:this contentRect:NSRect{0, 0, lastSize} styleMask:GetStyle()]; Window = [[AvnPanel alloc] initWithParent:this contentRect:NSRect{0, 0, lastSize} styleMask:GetStyle()];
[Window setHidesOnDeactivate:false];
} }
} else { } else {
if (![Window isKindOfClass:[AvnWindow class]]) { if (![Window isKindOfClass:[AvnWindow class]]) {

Loading…
Cancel
Save