tdevdraw: OS X: neutralize menu and Dock bugs in fullscreen mode - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 10ccf8df0c884dcc07b52fdd1bff77f149170dd2
 (DIR) parent 73b0f029e107c2d015ebb48d59d32f264973de49
 (HTM) Author: David Jeannot <djeannot24@gmail.com>
       Date:   Mon, 16 Jan 2012 17:11:36 -0500
       
       devdraw: OS X: neutralize menu and Dock bugs in fullscreen mode
       
       Previously, the menu bar has been set to hidden
       instead of autohidden in fullscreen mode, because
       it appeared too easily.  Occasionally however, it
       still appears.  This patch makes sure it won't.
       
       With OS X Lion's fullscreen, the Dock is
       autohidden, but sometimes remains hidden.  This
       bug comes with visual menu bar bugs
       during space transition and when exiting
       fullscreen.  Those bugs happen after each
       Devdraw's activation, for example.  This patch
       neutralizes them.
       
       R=rsc
       CC=plan9port.codebot
       http://codereview.appspot.com/5502091
       
       Diffstat:
         M src/cmd/devdraw/cocoa-screen.m      |      12 +++++++++---
       
       1 file changed, 9 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/devdraw/cocoa-screen.m b/src/cmd/devdraw/cocoa-screen.m
       t@@ -133,9 +133,6 @@ static NSCursor* makecursor(Cursor*);
        }
        - (void)windowDidBecomeKey:(id)arg
        {
       -        if(win.isnfs || win.isofs)
       -                hidebars(1);
       -
                in.touchevent = 0;
        
                getmousepos();
       t@@ -685,6 +682,9 @@ getmousepos(void)
                in.mpos.y = round(p.y);
        
                updatecursor();
       +
       +        if(win.isnfs || win.isofs)
       +                hidebars(1);
        }
        
        static void
       t@@ -1096,6 +1096,12 @@ hidebars(int set)
                s0 = [[NSScreen screens] objectAtIndex:0];
                old = [NSApp presentationOptions];
        
       +#if OSX_VERSION >= 100700
       +        /* This bit can get lost, resulting in dreadful bugs. */
       +        if(win.isnfs)
       +                old |= NSApplicationPresentationFullScreen;
       +#endif
       +
                if(set && s==s0)
                        opt = (old & ~Autohiddenbars) | Hiddenbars;
                else