Skip to content

Commit 5ac68fd

Browse files
committed
fix: show windows when the app is rendered
Signed-off-by: Grigorii K. Shartsev <[email protected]>
1 parent aabc3ae commit 5ac68fd

File tree

10 files changed

+41
-26
lines changed

10 files changed

+41
-26
lines changed

src/authentication/authentication.window.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const { BASE_TITLE, TITLE_BAR_HEIGHT } = require('../constants.js')
88
const { applyContextMenu } = require('../app/applyContextMenu.js')
99
const { getBrowserWindowIcon } = require('../shared/icons.utils.js')
1010
const { getAppConfig } = require('../app/AppConfig.ts')
11-
const { getScaledWindowSize } = require('../app/utils.ts')
11+
const { getScaledWindowSize, showWhenWindowMarkedReady } = require('../app/utils.ts')
1212

1313
/**
1414
* @return {import('electron').BrowserWindow}
@@ -53,6 +53,8 @@ function createAuthenticationWindow() {
5353

5454
window.loadURL(AUTHENTICATION_WINDOW_WEBPACK_ENTRY)
5555

56+
showWhenWindowMarkedReady(window)
57+
5658
return window
5759
}
5860

src/authentication/renderer/authentication.main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import '../../shared/assets/global.styles.css'
88
import Vue from 'vue'
99
import AuthenticationApp from './AuthenticationApp.vue'
1010
import { setupWebPage } from '../../shared/setupWebPage.js'
11+
import { markWindowReady } from '../../shared/markWindowReady.ts'
1112

1213
await setupWebPage()
1314

1415
new Vue(AuthenticationApp).$mount('#app')
16+
17+
markWindowReady()

src/help/help.window.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { BASE_TITLE } = require('../constants.js')
77
const { BrowserWindow } = require('electron')
88
const { applyExternalLinkHandler } = require('../app/externalLinkHandlers.js')
99
const { getBrowserWindowIcon } = require('../shared/icons.utils.js')
10-
const { getScaledWindowSize } = require('../app/utils.ts')
10+
const { getScaledWindowSize, showWhenWindowMarkedReady } = require('../app/utils.ts')
1111

1212
/**
1313
*
@@ -41,9 +41,7 @@ function createHelpWindow(parentWindow) {
4141

4242
applyExternalLinkHandler(window)
4343

44-
window.on('ready-to-show', () => {
45-
window.show()
46-
})
44+
showWhenWindowMarkedReady(window)
4745

4846
return window
4947
}

src/help/renderer/help.app.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import '../../shared/assets/global.styles.css'
88
import Vue from 'vue'
99
import HelpApp from './HelpApp.vue'
1010
import { setupWebPage } from '../../shared/setupWebPage.js'
11+
import { markWindowReady } from '../../shared/markWindowReady.ts'
1112

1213
await setupWebPage()
1314

1415
new Vue(HelpApp).$mount('#app')
16+
17+
markWindowReady()

src/main.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const { createWelcomeWindow } = require('./welcome/welcome.window.js')
1919
const { installVueDevtools } = require('./install-vue-devtools.js')
2020
const { loadAppConfig, getAppConfig, setAppConfig } = require('./app/AppConfig.ts')
2121
const { triggerDownloadUrl } = require('./app/downloads.ts')
22+
const { showWhenWindowMarkedReady, waitWindowMarkedReady } = require('./app/utils.ts')
2223

2324
/**
2425
* Parse command line arguments
@@ -144,7 +145,7 @@ app.whenReady().then(async () => {
144145
// There is no window (possible on macOS) - create
145146
if (!mainWindow || mainWindow.isDestroyed()) {
146147
mainWindow = createMainWindow()
147-
mainWindow.once('ready-to-show', () => mainWindow.show())
148+
showWhenWindowMarkedReady(mainWindow)
148149
return
149150
}
150151

@@ -233,7 +234,6 @@ app.whenReady().then(async () => {
233234

234235
mainWindow = createWelcomeWindow()
235236
createMainWindow = createWelcomeWindow
236-
mainWindow.once('ready-to-show', () => mainWindow.show())
237237

238238
ipcMain.once('appData:receive', async (event, appData) => {
239239
const welcomeWindow = mainWindow
@@ -254,14 +254,15 @@ app.whenReady().then(async () => {
254254
createMainWindow = createAuthenticationWindow
255255
}
256256

257-
mainWindow.once('ready-to-show', () => {
258-
// Do not show the main window if it is the Talk Window opened in the background
259-
const isTalkWindow = createMainWindow === createTalkWindow
260-
if (!isTalkWindow || !ARGUMENTS.openInBackground) {
261-
mainWindow.show()
262-
}
263-
welcomeWindow.close()
264-
})
257+
await waitWindowMarkedReady(mainWindow)
258+
259+
welcomeWindow.close()
260+
261+
// Do not show the main window if it is the Talk Window opened in the background
262+
const isTalkWindow = createMainWindow === createTalkWindow
263+
if (!isTalkWindow || !ARGUMENTS.openInBackground) {
264+
mainWindow.show()
265+
}
265266
})
266267

267268
let macDockBounceId
@@ -287,19 +288,18 @@ app.whenReady().then(async () => {
287288

288289
ipcMain.handle('authentication:openLoginWebView', async (event, serverUrl) => openLoginWebView(mainWindow, serverUrl))
289290

290-
ipcMain.handle('authentication:login', async () => {
291+
ipcMain.handle('authentication:login', () => {
291292
mainWindow.close()
292293
mainWindow = createTalkWindow()
293294
createMainWindow = createTalkWindow
294-
mainWindow.once('ready-to-show', () => mainWindow.show())
295+
showWhenWindowMarkedReady(mainWindow)
295296
})
296297

297-
ipcMain.handle('authentication:logout', async (event) => {
298+
ipcMain.handle('authentication:logout', async () => {
298299
if (createMainWindow === createTalkWindow) {
299300
await mainWindow.webContents.session.clearStorageData()
300301
const authenticationWindow = createAuthenticationWindow()
301302
createMainWindow = createAuthenticationWindow
302-
authenticationWindow.once('ready-to-show', () => authenticationWindow.show())
303303

304304
mainWindow.destroy()
305305
mainWindow = authenticationWindow
@@ -322,7 +322,7 @@ app.whenReady().then(async () => {
322322
isInWindowRelaunch = true
323323
mainWindow.destroy()
324324
mainWindow = createMainWindow()
325-
mainWindow.once('ready-to-show', () => mainWindow.show())
325+
showWhenWindowMarkedReady(mainWindow)
326326
isInWindowRelaunch = false
327327
})
328328

@@ -338,7 +338,7 @@ app.whenReady().then(async () => {
338338
// dock icon is clicked and there are no other windows open.
339339
// See window-all-closed event handler.
340340
mainWindow = createMainWindow()
341-
mainWindow.once('ready-to-show', () => mainWindow.show())
341+
showWhenWindowMarkedReady(mainWindow)
342342
}
343343
})
344344
})

src/talk/renderer/talk.main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import './assets/overrides.css'
1111
import 'regenerator-runtime' // TODO: Why isn't it added on bundling
1212
import { initTalkHashIntegration } from './init.js'
1313
import { setupWebPage } from '../../shared/setupWebPage.js'
14+
import { markWindowReady } from '../../shared/markWindowReady.ts'
1415
import { createViewer } from './Viewer/Viewer.js'
1516
import { createDesktopApp } from './desktop.app.js'
1617
import { registerTalkDesktopSettingsSection } from './Settings/index.ts'
@@ -35,3 +36,5 @@ window.OCA.Talk.Desktop.talkRouter.value = window.OCA.Talk.instance.$router
3536
registerTalkDesktopSettingsSection()
3637

3738
await import('./notifications/notifications.store.js')
39+
40+
markWindowReady()

src/upgrade/renderer/upgrade.app.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import '../../shared/assets/global.styles.css'
88
import Vue from 'vue'
99
import UpgradeApp from './UpgradeApp.vue'
1010
import { setupWebPage } from '../../shared/setupWebPage.js'
11+
import { markWindowReady } from '../../shared/markWindowReady.ts'
1112

1213
await setupWebPage()
1314

1415
new Vue(UpgradeApp).$mount('#app')
16+
17+
markWindowReady()

src/upgrade/upgrade.window.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { BASE_TITLE } = require('../constants.js')
77
const { BrowserWindow } = require('electron')
88
const { applyExternalLinkHandler } = require('../app/externalLinkHandlers.js')
99
const { getBrowserWindowIcon } = require('../shared/icons.utils.js')
10-
const { getScaledWindowSize } = require('../app/utils.ts')
10+
const { getScaledWindowSize, showWhenWindowMarkedReady } = require('../app/utils.ts')
1111

1212
/**
1313
*
@@ -38,9 +38,7 @@ function createUpgradeWindow() {
3838

3939
applyExternalLinkHandler(window)
4040

41-
window.on('ready-to-show', () => {
42-
window.show()
43-
})
41+
showWhenWindowMarkedReady(window)
4442

4543
return window
4644
}

src/welcome/welcome.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { appData } from '../app/AppData.js'
99
import { refetchAppDataIfDirty } from '../app/appData.service.js'
1010
import { initGlobals } from '../shared/globals/globals.js'
1111
import { applyAxiosInterceptors } from '../shared/setupWebPage.js'
12+
import { markWindowReady } from '../shared/markWindowReady.ts'
1213

1314
const quitButton = document.querySelector('.quit')
1415
quitButton.addEventListener('click', () => window.TALK_DESKTOP.quit())
@@ -20,6 +21,8 @@ window.TALK_DESKTOP.getOs().then(os => {
2021
}
2122
})
2223

24+
markWindowReady()
25+
2326
appData.restore()
2427

2528
initGlobals()

src/welcome/welcome.window.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
const { BrowserWindow } = require('electron')
77
const { getBrowserWindowIcon } = require('../shared/icons.utils.js')
88
const { isMac } = require('../shared/os.utils.js')
9-
const { getScaledWindowSize } = require('../app/utils.ts')
9+
const { getScaledWindowSize, showWhenWindowMarkedReady } = require('../app/utils.ts')
1010

1111
/**
1212
* @return {import('electron').BrowserWindow}
@@ -37,6 +37,8 @@ function createWelcomeWindow() {
3737

3838
window.loadURL(WELCOME_WINDOW_WEBPACK_ENTRY)
3939

40+
showWhenWindowMarkedReady(window)
41+
4042
return window
4143
}
4244

0 commit comments

Comments
 (0)