From bbee8e8a5e80d7d6d7e5c7d1afe2b53411faa7cc Mon Sep 17 00:00:00 2001 From: tiddlygit-test Date: Sun, 21 Mar 2021 00:04:06 +0800 Subject: [PATCH] Revert "refactor: remove unused titlebar" This reverts commit 6797b0436a8723da9637903ca0f499f85d288597. --- src/pages/Main/index.tsx | 4 ++-- src/pages/Preferences/index.tsx | 20 ++++++++++++++++++++ src/services/view/index.ts | 10 ++++++++++ src/services/windows/index.ts | 2 ++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/pages/Main/index.tsx b/src/pages/Main/index.tsx index d7e340ad..2d4811ec 100644 --- a/src/pages/Main/index.tsx +++ b/src/pages/Main/index.tsx @@ -167,7 +167,7 @@ const SidebarContainer = ({ children }: { children: React.ReactNode }): JSX.Elem export default function Main(): JSX.Element { const workspacesList = useWorkspacesListObservable(); - const [{ attachToMenubar, sidebar, pauseNotifications, themeSource }, isFullScreen] = usePromiseValue<[Partial, boolean | undefined]>( + const [{ attachToMenubar, titleBar, sidebar, pauseNotifications, themeSource }, isFullScreen] = usePromiseValue<[Partial, boolean | undefined]>( async () => await Promise.all([window.service.preference.getPreferences(), window.service.window.isFullScreen()]), [{}, false], )!; @@ -189,7 +189,7 @@ export default function Main(): JSX.Element { {sidebar === true && ( - + {workspacesList === undefined ? (
Loading...
) : ( diff --git a/src/pages/Preferences/index.tsx b/src/pages/Preferences/index.tsx index be8ba4f7..018dd553 100644 --- a/src/pages/Preferences/index.tsx +++ b/src/pages/Preferences/index.tsx @@ -219,6 +219,7 @@ export default function Preferences(): JSX.Element { swipeToNavigate, syncDebounceInterval, themeSource, + titleBar, unreadCountBadge, useHardwareAcceleration, } = preference; @@ -351,6 +352,25 @@ export default function Preferences(): JSX.Element { /> + {platform === 'darwin' && ( + <> + + + + + { + await window.service.preference.set('titleBar', event.target.checked); + await window.service.workspaceView.realignActiveWorkspace(); + }} + /> + + + + )} {platform !== 'darwin' && ( <> diff --git a/src/services/view/index.ts b/src/services/view/index.ts index c22fa7b5..74e5052a 100644 --- a/src/services/view/index.ts +++ b/src/services/view/index.ts @@ -55,6 +55,16 @@ export class View implements IViewService { void this.workspaceViewService.realignActiveWorkspace(); }, }, + { + label: () => (this.preferenceService.get('titleBar') ? 'Hide Title Bar' : 'Show Title Bar'), + accelerator: 'CmdOrCtrl+Alt+T', + enabled: process.platform === 'darwin', + visible: process.platform === 'darwin', + click: () => { + void this.preferenceService.set('titleBar', !this.preferenceService.get('titleBar')); + void this.workspaceViewService.realignActiveWorkspace(); + }, + }, // same behavior as BrowserWindow with autoHideMenuBar: true // but with addition to readjust BrowserView so it won't cover the menu bar { diff --git a/src/services/windows/index.ts b/src/services/windows/index.ts index ec16953b..26235239 100644 --- a/src/services/windows/index.ts +++ b/src/services/windows/index.ts @@ -102,6 +102,7 @@ export class Window implements IWindowService { this.setWindowMeta(windowName, meta); const existedWindowMeta = this.getWindowMeta(windowName); const attachToMenubar: boolean = this.preferenceService.get('attachToMenubar'); + const titleBar: boolean = this.preferenceService.get('titleBar'); if (existedWindow !== undefined) { // TODO: handle this menubar logic @@ -151,6 +152,7 @@ export class Window implements IWindowService { minimizable: false, fullscreenable: false, autoHideMenuBar: false, + titleBarStyle: titleBar ? 'default' : 'hidden', webPreferences: { devTools: true, nodeIntegration: false,