using systemui for full screen to allow modal dialogs

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor 2011-05-25 11:26:47 +00:00
parent 6dfd1add4a
commit 2077a6ad23

View File

@ -873,8 +873,10 @@ bool wxNonOwnedWindowCocoaImpl::ShowFullScreen(bool show, long WXUNUSED(style))
m_macFullScreenData = data ;
data->m_formerLevel = [m_macWindow level];
data->m_formerFrame = [m_macWindow frame];
CGDisplayCapture( kCGDirectMainDisplay );
[m_macWindow setLevel:CGShieldingWindowLevel()];
#if 0
// CGDisplayCapture( kCGDirectMainDisplay );
//[m_macWindow setLevel:NSMainMenuWindowLevel+1/*CGShieldingWindowLevel()*/];
#endif
NSRect screenframe = [[NSScreen mainScreen] frame];
NSRect frame = NSMakeRect (0, 0, 100, 100);
NSRect contentRect;
@ -883,15 +885,25 @@ bool wxNonOwnedWindowCocoaImpl::ShowFullScreen(bool show, long WXUNUSED(style))
screenframe.origin.y += (frame.origin.y - contentRect.origin.y);
screenframe.size.height += (frame.size.height - contentRect.size.height);
[m_macWindow setFrame:screenframe display:YES];
OSStatus error = SetSystemUIMode(kUIModeAllHidden,
kUIOptionDisableAppleMenu
| kUIOptionDisableProcessSwitch
| kUIOptionDisableForceQuit);
}
else if ( m_macFullScreenData != NULL )
{
FullScreenData *data = (FullScreenData *) m_macFullScreenData ;
CGDisplayRelease( kCGDirectMainDisplay );
[m_macWindow setLevel:data->m_formerLevel];
#if 0
// CGDisplayRelease( kCGDirectMainDisplay );
// [m_macWindow setLevel:data->m_formerLevel];
#endif
[m_macWindow setFrame:data->m_formerFrame display:YES];
delete data ;
m_macFullScreenData = NULL ;
OSStatus error = SetSystemUIMode(kUIModeNormal, 0);
}
return true;