tdevdraw: do not force-hide menu and dock during full screen on mac - 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 4c54893156cf2489081fe63eb37a0e4d3ede1e05
 (DIR) parent 3d1382b98a502d0c34d5ba2c462396acc515016e
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Tue, 14 Jan 2020 12:06:34 -0500
       
       devdraw: do not force-hide menu and dock during full screen on mac
       
       This hides the menu on dock on all screens which is more than we want.
       The code was added to fix a problem with Catalina that I can no longer
       reproduce, so I guess it works now.
       
       Fixes #336.
       
       Diffstat:
         M src/cmd/devdraw/mac-screen.m        |      18 +++++++++++++++---
       
       1 file changed, 15 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/devdraw/mac-screen.m b/src/cmd/devdraw/mac-screen.m
       t@@ -930,6 +930,13 @@ rpc_setmouse(Client *c, Point p)
        
        - (NSApplicationPresentationOptions)window:(id)arg
                        willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions {
       +        // The default for full-screen is to auto-hide the dock and menu bar,
       +        // but the menu bar in particular comes back when the cursor is just
       +        // near the top of the screen, which makes acme's top tag line very difficult to use.
       +        // Disable the menu bar entirely.
       +        // In theory this code disables the dock entirely too, but if you drag the mouse
       +        // down far enough off the bottom of the screen the dock still unhides.
       +        // That's OK.
                NSApplicationPresentationOptions o;
                o = proposedOptions;
                o &= ~(NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar);
       t@@ -938,16 +945,21 @@ rpc_setmouse(Client *c, Point p)
        }
        
        - (void)windowWillEnterFullScreen:(NSNotification*)notification {
       -        // TODO: This should only be done if the window
       -        // is on the screen with the dock.
       -        // But how can you tell which window has the dock?
       +        // This is a heavier-weight way to make sure the menu bar and dock go away,
       +        // but this affects all screens even though the app is running on full screen
       +        // on only one screen, so it's not great. The behavior from the
       +        // willUseFullScreenPresentationOptions seems to be enough for now.
       +        /*
                [[NSApplication sharedApplication]
                        setPresentationOptions:NSApplicationPresentationHideMenuBar | NSApplicationPresentationHideDock];
       +        */
        }
        
        - (void)windowDidExitFullScreen:(NSNotification*)notification {
       +        /*
                [[NSApplication sharedApplication]
                        setPresentationOptions:NSApplicationPresentationDefault];
       +        */
        }
        @end