From e6902df4f319a6fb59b4d47ed4faec19de2daf05 Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Wed, 15 Jul 2020 22:21:53 +0800 Subject: [PATCH] Fix window title is not in synced with workspace (#308) --- public/libs/views.js | 2 ++ public/libs/workspaces-views.js | 14 +++++++++----- src/components/main/fake-title-bar.js | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/public/libs/views.js b/public/libs/views.js index a6339774..8feb0cce 100644 --- a/public/libs/views.js +++ b/public/libs/views.js @@ -389,6 +389,7 @@ const addView = (browserWindow, workspace) => { if (workspaceObj.active) { sendToAllWindows('update-title', title); + browserWindow.setTitle(title); } }); @@ -694,6 +695,7 @@ const setActiveView = (browserWindow, id) => { sendToAllWindows('update-address', view.webContents.getURL(), false); sendToAllWindows('update-title', view.webContents.getTitle()); + browserWindow.setTitle(view.webContents.getTitle()); } }; diff --git a/public/libs/workspaces-views.js b/public/libs/workspaces-views.js index 0ba51058..64ab839f 100644 --- a/public/libs/workspaces-views.js +++ b/public/libs/workspaces-views.js @@ -1,4 +1,4 @@ -const { session } = require('electron'); +const { app, session } = require('electron'); const { countWorkspaces, @@ -79,11 +79,15 @@ const setActiveWorkspaceView = (id) => { }; const removeWorkspaceView = (id) => { + // if there's only one workspace left, clear all if (countWorkspaces() === 1) { - mainWindow.get().setBrowserView(null); - } - - if (getWorkspace(id).active && countWorkspaces() > 1) { + const win = mainWindow.get(); + if (win) { + win.setBrowserView(null); + win.setTitle(app.name); + sendToAllWindows('update-title', ''); + } + } else if (countWorkspaces() > 1 && getWorkspace(id).active) { setActiveWorkspaceView(getPreviousWorkspace(id).id); } diff --git a/src/components/main/fake-title-bar.js b/src/components/main/fake-title-bar.js index f64944ae..a34a7f5f 100644 --- a/src/components/main/fake-title-bar.js +++ b/src/components/main/fake-title-bar.js @@ -52,7 +52,7 @@ const FakeTitleBar = (props) => { } }} > - {(window.mode === 'main' || window.mode === 'menubar') && title ? title : window.require('electron').remote.getCurrentWindow().getTitle()} + {(window.mode === 'main' || window.mode === 'menubar') && title ? title : window.require('electron').remote.app.name} ); };