Browse Source
Merge pull request #3867 from MarchingCube/osx-dialog-flag
OSX: Mark modal windows
pull/3870/head
danwalmsley
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
22 additions and
0 deletions
-
native/Avalonia.Native/src/OSX/window.h
-
native/Avalonia.Native/src/OSX/window.mm
|
|
|
@ -19,6 +19,8 @@ class WindowBaseImpl; |
|
|
|
-(void) pollModalSession: (NSModalSession _Nonnull) session; |
|
|
|
-(void) restoreParentWindow; |
|
|
|
-(bool) shouldTryToHandleEvents; |
|
|
|
-(bool) isModal; |
|
|
|
-(void) setModal: (bool) isModal; |
|
|
|
-(void) showAppMenuOnly; |
|
|
|
-(void) showWindowMenuWithAppMenu; |
|
|
|
-(void) applyMenu:(NSMenu* _Nullable)menu; |
|
|
|
|
|
|
|
@ -433,6 +433,9 @@ private: |
|
|
|
{ |
|
|
|
if([Window parentWindow] != nil) |
|
|
|
[[Window parentWindow] removeChildWindow:Window]; |
|
|
|
|
|
|
|
[Window setModal:FALSE]; |
|
|
|
|
|
|
|
WindowBaseImpl::Show(); |
|
|
|
|
|
|
|
return SetWindowState(_lastWindowState); |
|
|
|
@ -450,6 +453,8 @@ private: |
|
|
|
if(cparent == nullptr) |
|
|
|
return E_INVALIDARG; |
|
|
|
|
|
|
|
[Window setModal:TRUE]; |
|
|
|
|
|
|
|
[cparent->Window addChildWindow:Window ordered:NSWindowAbove]; |
|
|
|
WindowBaseImpl::Show(); |
|
|
|
|
|
|
|
@ -1144,6 +1149,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
ComPtr<WindowBaseImpl> _parent; |
|
|
|
bool _canBecomeKeyAndMain; |
|
|
|
bool _closed; |
|
|
|
bool _isModal; |
|
|
|
AvnMenu* _menu; |
|
|
|
double _lastScaling; |
|
|
|
} |
|
|
|
@ -1322,11 +1328,25 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
auto ch = objc_cast<AvnWindow>(uch); |
|
|
|
if(ch == nil) |
|
|
|
continue; |
|
|
|
|
|
|
|
if(![ch isModal]) |
|
|
|
continue; |
|
|
|
|
|
|
|
return FALSE; |
|
|
|
} |
|
|
|
return TRUE; |
|
|
|
} |
|
|
|
|
|
|
|
-(bool) isModal |
|
|
|
{ |
|
|
|
return _isModal; |
|
|
|
} |
|
|
|
|
|
|
|
-(void) setModal: (bool) isModal |
|
|
|
{ |
|
|
|
_isModal = isModal; |
|
|
|
} |
|
|
|
|
|
|
|
-(void)makeKeyWindow |
|
|
|
{ |
|
|
|
if([self activateAppropriateChild: true]) |
|
|
|
|