Revision: 3686 Author: topa Date: 2016-04-27 08:01:30 -0700 (Wed, 27 Apr 2016) Log Message: ----------- (Tobias, Bert) Change fullscreen behavior of Cocoa VMs.
- remove slow fadein/fadeout - provide correct fullscreen options - enable 'Fullscreen' button in window title bar
Modified Paths: -------------- branches/Cog/platforms/iOS/vm/English.lproj/MainMenu.xib branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
Modified: branches/Cog/platforms/iOS/vm/English.lproj/MainMenu.xib =================================================================== --- branches/Cog/platforms/iOS/vm/English.lproj/MainMenu.xib 2016-04-23 18:06:55 UTC (rev 3685) +++ branches/Cog/platforms/iOS/vm/English.lproj/MainMenu.xib 2016-04-27 15:01:30 UTC (rev 3686) @@ -508,7 +508,8 @@ </object> <string key="NSScreenRect">{{0, 0}, {2560, 1417}}</string> <string key="NSMaxSize">{10000000000000, 10000000000000}</string> - <bool key="NSWindowIsRestorable">YES</bool> + <int key="NSWindowCollectionBehavior">128</int> + <bool key="NSWindowIsRestorable">NO</bool> </object> <object class="NSCustomObject" id="976324537"> <string key="NSClassName">SqueakOSXAppDelegate</string>
Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m =================================================================== --- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m 2016-04-23 18:06:55 UTC (rev 3685) +++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m 2016-04-27 15:01:30 UTC (rev 3686) @@ -624,7 +624,7 @@ return YES; }
-- (void) ioSetFullScreen: (sqInt) fullScreen { +- (void) ioSetFullScreen: (sqInt) fullScreen { if ([self isInFullScreenMode] == YES && (fullScreen == 1)) return; @@ -633,17 +633,18 @@ if ([self isInFullScreenMode] == NO && (fullScreen == 1)) { self.savedScreenBoundsAtTimeOfFullScreen = (NSRect) [self bounds]; - [self fadeOut]; - [self enterFullScreenMode:[NSScreen mainScreen] withOptions: nil]; + NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt: + NSApplicationPresentationHideDock | + NSApplicationPresentationHideMenuBar ], + NSFullScreenModeApplicationPresentationOptions, nil]; + [self enterFullScreenMode:[NSScreen mainScreen] withOptions:options]; extern struct VirtualMachine* interpreterProxy; interpreterProxy->fullDisplayUpdate(); - [self fadeIn]; } if ([self isInFullScreenMode] == YES && (fullScreen == 0)) { - [self fadeOut]; [self exitFullScreenModeWithOptions: NULL]; - [self fadeIn]; if ([self.window isKeyWindow] == NO) { [self.window makeKeyAndOrderFront: self]; // NOT SURE IF THIS IS NEEDED, MORE TESTING [self.window setContentSize: self.savedScreenBoundsAtTimeOfFullScreen.size]; @@ -651,37 +652,4 @@ } }
-- (void)fadeOut { - CGDisplayErr err; - - err = CGAcquireDisplayFadeReservation((CGDisplayReservationInterval)kCGMaxDisplayReservationInterval, - &fadeToken); - if (err == kCGErrorSuccess) { - CGDisplayFade(fadeToken, - ((sqSqueakOSXInfoPlistInterface*) gDelegateApp.squeakApplication.infoPlistInterfaceLogic).SqueakUIFadeForFullScreenInSeconds, - (CGDisplayBlendFraction)kCGDisplayBlendNormal, - (CGDisplayBlendFraction)kCGDisplayBlendSolidColor, - 0.0f, - 0.0f, - 0.0f, - TRUE); - } -} - -- (void)fadeIn { - CGDisplayErr err; - - err = CGDisplayFade(fadeToken, - ((sqSqueakOSXInfoPlistInterface*) gDelegateApp.squeakApplication.infoPlistInterfaceLogic).SqueakUIFadeForFullScreenInSeconds, - (CGDisplayBlendFraction)kCGDisplayBlendSolidColor, - (CGDisplayBlendFraction)kCGDisplayBlendNormal, - 0.0f, - 0.0f, - 0.0f, - TRUE); - if (err == kCGErrorSuccess) { - CGReleaseDisplayFadeReservation(fadeToken); - } -} - @end
Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m =================================================================== --- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m 2016-04-23 18:06:55 UTC (rev 3685) +++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m 2016-04-27 15:01:30 UTC (rev 3686) @@ -713,7 +713,7 @@ return YES; }
-- (void) ioSetFullScreen: (sqInt) fullScreen { +- (void) ioSetFullScreen: (sqInt) fullScreen { if ([self isInFullScreenMode] == YES && (fullScreen == 1)) return; @@ -722,17 +722,18 @@ if ([self isInFullScreenMode] == NO && (fullScreen == 1)) { self.savedScreenBoundsAtTimeOfFullScreen = (NSRect) [self bounds]; - [self fadeOut]; - [self enterFullScreenMode:[NSScreen mainScreen] withOptions: nil]; + NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt: + NSApplicationPresentationHideDock | + NSApplicationPresentationHideMenuBar ], + NSFullScreenModeApplicationPresentationOptions, nil]; + [self enterFullScreenMode:[NSScreen mainScreen] withOptions:options]; extern struct VirtualMachine* interpreterProxy; interpreterProxy->fullDisplayUpdate(); - [self fadeIn]; } if ([self isInFullScreenMode] == YES && (fullScreen == 0)) { - [self fadeOut]; [self exitFullScreenModeWithOptions: NULL]; - [self fadeIn]; if ([self.window isKeyWindow] == NO) { [self.window makeKeyAndOrderFront: self]; // NOT SURE IF THIS IS NEEDED, MORE TESTING [self.window setContentSize: self.savedScreenBoundsAtTimeOfFullScreen.size]; @@ -740,39 +741,6 @@ } }
-- (void)fadeOut { - CGDisplayErr err; - - err = CGAcquireDisplayFadeReservation((CGDisplayReservationInterval)kCGMaxDisplayReservationInterval, - &fadeToken); - if (err == kCGErrorSuccess) { - CGDisplayFade(fadeToken, - ((sqSqueakOSXInfoPlistInterface*) gDelegateApp.squeakApplication.infoPlistInterfaceLogic).SqueakUIFadeForFullScreenInSeconds, - (CGDisplayBlendFraction)kCGDisplayBlendNormal, - (CGDisplayBlendFraction)kCGDisplayBlendSolidColor, - 0.0f, - 0.0f, - 0.0f, - TRUE); - } -} - -- (void)fadeIn { - CGDisplayErr err; - - err = CGDisplayFade(fadeToken, - ((sqSqueakOSXInfoPlistInterface*) gDelegateApp.squeakApplication.infoPlistInterfaceLogic).SqueakUIFadeForFullScreenInSeconds, - (CGDisplayBlendFraction)kCGDisplayBlendSolidColor, - (CGDisplayBlendFraction)kCGDisplayBlendNormal, - 0.0f, - 0.0f, - 0.0f, - TRUE); - if (err == kCGErrorSuccess) { - CGReleaseDisplayFadeReservation(fadeToken); - } -} - - (void) preDrawThelayers { }