private static bool ToggleGameViewFullscreen(bool triggeredOnPlayStateChange)
        {
            EditorFullscreenSettings.FullscreenOption fullscreenOps;
            if (triggeredOnPlayStateChange)
            {
                fullscreenOps = EditorFullscreenSettings.settings.openFullscreenOnGameStart;
            }
            else
            {
                fullscreenOps = EditorFullscreenSettings.GetFullscreenOptionsForWindowType(EditorFullscreenState.gameViewType);
            }
            bool setFullscreen = !EditorFullscreenState.WindowTypeIsFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.gameViewType, fullscreenOps);

            EditorFullscreenState.RunOnLoad methodToRun;
            if (!triggeredOnPlayStateChange)
            {
                methodToRun = ToggleGameViewFullscreen;
            }
            else
            {
                methodToRun = ToggleGameViewFullscreenPlayStateWasChanged;
            }
            if (EditorFullscreenState.RunAfterInitialStateLoaded(methodToRun))
            {
                return(setFullscreen);
            }

            setFullscreen = EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(null, EditorFullscreenState.gameViewType, fullscreenOps, triggeredOnPlayStateChange);
            var focusedWindow = EditorWindow.focusedWindow;

            EditorMainWindow.Focus();
            if (focusedWindow != null)
            {
                focusedWindow.Focus();
            }

            if (!triggeredOnPlayStateChange)
            {
                bool isPlaying = EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode;
                if (settings.startGameWhenEnteringFullscreen && !isPlaying && setFullscreen)
                {
                    //Enter play mode
                    EditorApplication.ExecuteMenuItem("Edit/Play");
                }
                else if (settings.stopGameWhenExitingFullscreen != EditorFullscreenSettings.StopGameWhenExitingFullscreen.Never && isPlaying && !setFullscreen)
                {
                    if (settings.stopGameWhenExitingFullscreen == EditorFullscreenSettings.StopGameWhenExitingFullscreen.WhenAnyFullscreenGameViewIsExited || !WindowTypeIsFullscreen(EditorFullscreenState.gameViewType))
                    {
                        //Exit play mode
                        EditorApplication.ExecuteMenuItem("Edit/Play");
                    }
                }
            }
            return(setFullscreen);
        }
 /// <summary>
 /// Toggle fullscreen for the window under the cursor.
 /// </summary>
 /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns>
 public static bool ToggleWindowUnderCursorFullscreen()
 {
     if (EditorWindow.mouseOverWindow != null)
     {
         return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorWindow.mouseOverWindow, EditorWindow.mouseOverWindow.GetType(), EditorFullscreenSettings.settings.windowUnderCursor));
     }
     else
     {
         return(false);
     }
 }
 /// <summary>
 /// Toggles fullscreen for the focused window.
 /// </summary>
 /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns>
 public static bool ToggleFocusedWindowFullscreen()
 {
     if (EditorWindow.focusedWindow != null)
     {
         return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorWindow.focusedWindow, EditorWindow.focusedWindow.GetType(), EditorFullscreenSettings.settings.currentlyFocusedWindow));
     }
     else
     {
         return(false);
     }
 }
 /// <summary>
 /// Toggles fullscreen for the scene view.
 /// </summary>
 public static bool ToggleSceneViewFullscreen()
 {
     return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(typeof(CustomSceneView)));
 }
        /******************************************/
        /************ Hotkeyed Methods ************/
        /******************************************/

        /// <summary>
        /// Toggles fullscreen for the main editor window.
        /// </summary>
        ///
        public static bool ToggleMainWindowFullscreen()
        {
            return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.mainWindowType));
        }
 /// <summary>
 /// Toggle fullscreen at a position decided according to the current settings for the specified window type.
 /// </summary>
 public static bool ToggleFullscreenAtOptionsSpecifiedPosition(Type windowType)
 {
     return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(windowType));
 }