From 26ef7b56e1e641064addc3d5339b3628e162277b Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Tue, 19 Oct 2021 22:04:19 +0200 Subject: [PATCH] Changed version checking code for native window and correctly support frameless on Windows 8 (#1829) (#1830) (cherry picked from commit 047db6e6e8f7f9610468428c6a6a0457ebc405d8) Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> --- src/common/config/index.ts | 3 ++- src/common/utils/util.ts | 4 ++-- src/main/main.ts | 2 +- src/main/views/viewManager.ts | 2 +- src/main/windows/mainWindow.ts | 3 ++- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/common/config/index.ts b/src/common/config/index.ts index 9be57efc..460fa471 100644 --- a/src/common/config/index.ts +++ b/src/common/config/index.ts @@ -24,6 +24,7 @@ import {UPDATE_TEAMS, GET_CONFIGURATION, UPDATE_CONFIGURATION, GET_LOCAL_CONFIGU import * as Validator from 'main/Validator'; import {getDefaultTeamWithTabsFromTeam} from 'common/tabs/TabView'; +import Utils from 'common/utils/util'; import defaultPreferences, {getDefaultDownloadLocation} from './defaultPreferences'; import upgradeConfigData from './upgradePreferences'; @@ -57,7 +58,7 @@ export default class Config extends EventEmitter { this.predefinedTeams.push(...buildConfig.defaultTeams.map((team) => getDefaultTeamWithTabsFromTeam(team))); } try { - this.useNativeWindow = os.platform() === 'win32' && (parseInt(os.release().split('.')[0], 10) < 10); + this.useNativeWindow = os.platform() === 'win32' && !Utils.isVersionGreaterThanOrEqualTo(os.release(), '6.2'); } catch { this.useNativeWindow = false; } diff --git a/src/common/utils/util.ts b/src/common/utils/util.ts index 32c04fa6..ab9fc687 100644 --- a/src/common/utils/util.ts +++ b/src/common/utils/util.ts @@ -37,7 +37,7 @@ function shorten(string: string, max?: number) { return string; } -function isServerVersionGreaterThanOrEqualTo(currentVersion: string, compareVersion: string): boolean { +function isVersionGreaterThanOrEqualTo(currentVersion: string, compareVersion: string): boolean { if (currentVersion === compareVersion) { return true; } @@ -66,5 +66,5 @@ export default { getDisplayBoundaries, runMode, shorten, - isServerVersionGreaterThanOrEqualTo, + isVersionGreaterThanOrEqualTo, }; diff --git a/src/main/main.ts b/src/main/main.ts index 562b37d7..929a25b9 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -830,7 +830,7 @@ function openExtraTabs(data: Array, team: TeamW const remoteInfo = data.find((info) => info && typeof info !== 'string' && info.name === team.name) as RemoteInfo; if (remoteInfo) { team.tabs.forEach((tab) => { - if (tab.name !== TAB_MESSAGING && remoteInfo.serverVersion && Utils.isServerVersionGreaterThanOrEqualTo(remoteInfo.serverVersion, '6.0.0')) { + if (tab.name !== TAB_MESSAGING && remoteInfo.serverVersion && Utils.isVersionGreaterThanOrEqualTo(remoteInfo.serverVersion, '6.0.0')) { if (tab.name === TAB_PLAYBOOKS && remoteInfo.hasPlaybooks && tab.isOpen !== false) { log.info(`opening ${team.name}___${tab.name} on hasPlaybooks`); tab.isOpen = true; diff --git a/src/main/views/viewManager.ts b/src/main/views/viewManager.ts index 0b885dd4..ecff858a 100644 --- a/src/main/views/viewManager.ts +++ b/src/main/views/viewManager.ts @@ -430,7 +430,7 @@ export class ViewManager { return; } - if (view.status === Status.READY && view.serverInfo.remoteInfo.serverVersion && Utils.isServerVersionGreaterThanOrEqualTo(view.serverInfo.remoteInfo.serverVersion, '6.0.0')) { + if (view.status === Status.READY && view.serverInfo.remoteInfo.serverVersion && Utils.isVersionGreaterThanOrEqualTo(view.serverInfo.remoteInfo.serverVersion, '6.0.0')) { const pathName = `/${urlWithSchema.replace(view.tab.server.url.toString(), '')}`; view.view.webContents.send(BROWSER_HISTORY_PUSH, pathName); this.deeplinkSuccess(view.name); diff --git a/src/main/windows/mainWindow.ts b/src/main/windows/mainWindow.ts index 8da118cc..6dc6026d 100644 --- a/src/main/windows/mainWindow.ts +++ b/src/main/windows/mainWindow.ts @@ -14,6 +14,7 @@ import {SavedWindowState} from 'types/mainWindow'; import {SELECT_NEXT_TAB, SELECT_PREVIOUS_TAB, GET_FULL_SCREEN_STATUS, OPEN_TEAMS_DROPDOWN} from 'common/communication'; import {DEFAULT_WINDOW_HEIGHT, DEFAULT_WINDOW_WIDTH, MINIMUM_WINDOW_HEIGHT, MINIMUM_WINDOW_WIDTH} from 'common/utils/constants'; +import Utils from 'common/utils/util'; import * as Validator from '../Validator'; import ContextMenu from '../contextMenu'; @@ -38,7 +39,7 @@ function isInsideRectangle(container: Electron.Rectangle, rect: Electron.Rectang } function isFramelessWindow() { - return os.platform() === 'darwin' || (os.platform() === 'win32' && os.release().startsWith('10')); + return os.platform() === 'darwin' || (os.platform() === 'win32' && Utils.isVersionGreaterThanOrEqualTo(os.release(), '6.2')); } function createMainWindow(config: CombinedConfig, options: {linuxAppIcon: string}) {