Skip to content

Commit

Permalink
Fixed issues with loading the app from cold when deep linking (#3201) (
Browse files Browse the repository at this point in the history
…#3205)

* Fixed issues with loading the app from cold when deep linking

* Don't call show() before the window is created on Windows

(cherry picked from commit 1fe94eb)

Co-authored-by: Devin Binnie <[email protected]>
  • Loading branch information
mattermost-build and devinbinnie authored Nov 13, 2024
1 parent 65d65d5 commit 869aead
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
1 change: 0 additions & 1 deletion src/main/app/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ export function handleAppSecondInstance(event: Event, argv: string[]) {

// Protocol handler for win32
// argv: An array of the second instance’s (command line / deep linked) arguments
MainWindow.show();
const deeplinkingURL = getDeeplinkingURL(argv);
if (deeplinkingURL) {
openDeepLink(deeplinkingURL);
Expand Down
10 changes: 7 additions & 3 deletions src/main/app/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import type {BrowserWindow, Rectangle} from 'electron';
import {app, Menu, session, dialog, nativeImage, screen} from 'electron';
import isDev from 'electron-is-dev';

import {APP_MENU_WILL_CLOSE} from 'common/communication';
import {APP_MENU_WILL_CLOSE, MAIN_WINDOW_CREATED} from 'common/communication';
import Config from 'common/config';
import JsonFileManager from 'common/JsonFileManager';
import {Logger} from 'common/log';
Expand Down Expand Up @@ -38,8 +38,12 @@ const log = new Logger('App.Utils');

export function openDeepLink(deeplinkingUrl: string) {
try {
MainWindow.show();
ViewManager.handleDeepLink(deeplinkingUrl);
if (MainWindow.get()) {
MainWindow.show();
ViewManager.handleDeepLink(deeplinkingUrl);
} else {
MainWindow.on(MAIN_WINDOW_CREATED, () => ViewManager.handleDeepLink(deeplinkingUrl));
}
} catch (err) {
log.error(`There was an error opening the deeplinking url: ${err}`);
}
Expand Down
8 changes: 5 additions & 3 deletions src/main/views/viewManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,11 @@ export class ViewManager {
}

private init = () => {
LoadingScreen.show();
ServerManager.getAllServers().forEach((server) => this.loadServer(server));
this.showInitial();
if (ServerManager.hasServers()) {
LoadingScreen.show();
ServerManager.getAllServers().forEach((server) => this.loadServer(server));
this.showInitial();
}
};

private handleDeveloperModeUpdated = (json: DeveloperSettings) => {
Expand Down

0 comments on commit 869aead

Please sign in to comment.