Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lion FullScreen support #15

Closed
NeomMob opened this issue Sep 6, 2011 · 5 comments
Closed

Lion FullScreen support #15

NeomMob opened this issue Sep 6, 2011 · 5 comments

Comments

@NeomMob
Copy link

NeomMob commented Sep 6, 2011

Hello,

Is there a way to support the Lion fullscreen mode?

Thanks and regards,

@loretoparisi
Copy link

I added fullscreen support for Lion only (by now ;)

It's very simple. Add a couples of lines and a callback:

   - (void)_doInitialWindowSetup
   {

     if ( IN_RUNNING_LION ) { // Target OS X Lion

         [self setCollectionBehavior:[self collectionBehavior] | NSWindowCollectionBehaviorFullScreenPrimary];

     }

and

  - (NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:    (NSApplicationPresentationOptions)proposedOptions
{
    // customize our appearance when entering full screen:
    // we don't want the dock to appear but we want the menubar to hide/show automatically
    //
    return (NSApplicationPresentationFullScreen |       // support full screen for this window (required)
        NSApplicationPresentationHideDock |         // completely hide the dock
        NSApplicationPresentationAutoHideMenuBar);  // yes we want the menu bar to show/hide
}

That's it!

@NeomMob
Copy link
Author

NeomMob commented Oct 19, 2011

Thanks a lot!

@NeomMob NeomMob closed this as completed Oct 19, 2011
@loretoparisi
Copy link

Just a reminder.
When you go out from fullcreen (event willExitFullScreen:(NSNotification)notif, the minimize semaphore button is set off.
Any one found a way to set it up it again?

@loretoparisi
Copy link

So I tried to setup again the window's style mask (using the flag you activated when creating the window):

  NSUInteger styleMask = NSResizableWindowMask | NSClosableWindowMask |  NSMiniaturizableWindowMask | NSTitledWindowMask;
styleMask |= NSTexturedBackgroundWindowMask;
  window = [[AppStoreWindow alloc] initWithContentRect:windowFrame 
                                      styleMask: styleMask
                                        backing:NSBackingStoreBuffered 
                                          defer:NO];


- (void)didExitFull:(NSNotification *)notification
{


   NSUInteger styleMask=[window styleMask];
    [window setStyleMask:styleMask|NSMiniaturizableWindowMask];

 }

but it seems is not working :(

@loretoparisi
Copy link

So, I came across this problem and checked that the miniaturize button is being disabled when going out the full screen. So doing something like this

NSButton *minBtn=[window standardWindowButton:NSWindowMiniaturizeButton];
   if(minBtn) {
       [minBtn setEnabled:YES];
        // TODO: update the window buttons
   }

would update the window buttons.
The window's titlebar is updated automatically when the window is going frontmost after being background.
Depending on the behavior, the app should update the window itself programmatically in order to show the button status before going out of focus.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants