An NSView brought to fullscreen forgets its presentation options when a second monitor is attached or removed
| Originator: | tj | ||
| Number: | rdar://15545388 | Date Originated: | 25-Nov-2013 |
| Status: | Open | Resolved: | No |
| Product: | OS X | Product Version: | 10.8, 10.9 |
| Classification: | Serious bug | Reproducible: | Always |
Summary:
An NSView brought to fullscreen with..
https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSView_Class/Reference/NSView.html#//apple_ref/occ/instm/NSView/enterFullScreenMode:withOptions:
and options @{NSFullScreenModeApplicationPresentationOptions : @(NSApplicationPresentationHideMenuBar + NSApplicationPresentationHideDock + NSApplicationPresentationDisableProcessSwitching + NSApplicationPresentationDisableForceQuit SApplicationPresentationDisableSessionTermination SApplicationPresentationDisableHideApplication + NSApplicationPresentationDisableAppleMenu)}
forgets some of the set options when an external monitor is attached to the Mac (no matter if HDMI or Lightning/Display-Port connection). At least, NSApplicationPresentationHideMenuBar and NSApplicationPresentationDisableProcessSwitching is gone.
Steps to Reproduce:
Have XCode 5.0.2 installed.
Have a NSWindow containing an NSView
Send the following method to the specific NSView
[view enterFullScreenMode:[NSScreen mainScreen] withOptions:@{NSFullScreenModeApplicationPresentationOptions : @(NSApplicationPresentationHideMenuBar + NSApplicationPresentationHideDock + NSApplicationPresentationDisableProcessSwitching + NSApplicationPresentationDisableForceQuit SApplicationPresentationDisableSessionTermination SApplicationPresentationDisableHideApplication + NSApplicationPresentationDisableAppleMenu)}];
The view will be on fullscreen on your main screen, all other connected screens will be black. You are not able to quit the application, switch processes, etc.
Connect an external screen to your Mac or, if already connected, remove it and reconnect it.
You will notice that the connected screen is not or no longer black, and you can actually escape the fullscreen mode of the NSView by moving the cursor to the second screen and click on its desktop. The NSView has obviously forgotten its presentation options.
Expected Results:
The NSView should behave exactly like it did before the second screen was connected or reconnected to the Mac.
Actual Results:
The NSView forgets some of its previously set presentation options for the fullscreen mode.
Version:
10.9, 10.8, might also affect 10.7
Notes:
Configuration:
Tested on several MacBooks (Air, Pro, recent models) with different external screens and connections (HDMI, DP, Lightning)
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!