Compare commits

...

37 Commits

Author SHA1 Message Date
R Midhun Suresh
067e8e27c1 Set boolean to false when exit is cancelled 2026-02-05 13:32:51 +05:30
R Midhun Suresh
2766333e8a Fix issues with quit logic 2026-02-05 13:13:11 +05:30
ElementRobot
7a00e61675 Merge pull request #2839 from element-hq/actions/localazy-download
Localazy Download
2026-02-04 11:30:25 +01:00
t3chguy
d4ad12300e [create-pull-request] automated change 2026-02-04 06:20:16 +00:00
David Baker
a16ddf7f0d Merge pull request #2836 from element-hq/renovate/electron
Update electron
2026-02-03 17:04:57 +00:00
David Baker
f9a1855bbd Merge pull request #2833 from element-hq/renovate/rust-bullseye
Update rust:bullseye Docker digest to 3ebcc2d
2026-02-03 17:02:44 +00:00
David Baker
0bd5657bab Merge pull request #2831 from element-hq/renovate/actions-setup-python-digest
Update actions/setup-python digest to a309ff8
2026-02-03 16:28:49 +00:00
David Baker
4828e73fe6 Merge pull request #2837 from element-hq/renovate/playwright
Update playwright to v1.58.1
2026-02-03 16:15:01 +00:00
David Baker
97b1df6d4e Merge pull request #2835 from element-hq/renovate/matrix-org
Update dependency matrix-web-i18n to v3.6.0
2026-02-03 16:13:40 +00:00
David Baker
b15ec07272 Merge pull request #2834 from element-hq/renovate/npm-minor-patch
Update npm non-major dependencies
2026-02-03 16:13:12 +00:00
David Baker
f2de2c4503 Merge pull request #2832 from element-hq/renovate/docker
Update docker/login-action digest to 3227f53
2026-02-03 16:11:33 +00:00
David Baker
16e1b10278 Merge pull request #2830 from element-hq/renovate/actions-cache-digest
Update actions/cache digest to cdf6c1f
2026-02-03 15:55:10 +00:00
renovate[bot]
dfd8647ad1 Update playwright to v1.58.1 2026-02-03 15:17:49 +00:00
renovate[bot]
a175dc7ec4 Update electron 2026-02-03 15:17:37 +00:00
renovate[bot]
150f4f7a7d Update dependency matrix-web-i18n to v3.6.0 2026-02-03 15:17:20 +00:00
renovate[bot]
e1da99ee8b Update npm non-major dependencies 2026-02-03 15:17:07 +00:00
renovate[bot]
406a1c9883 Update rust:bullseye Docker digest to 3ebcc2d 2026-02-03 15:16:45 +00:00
renovate[bot]
717b7ca725 Update docker/login-action digest to 3227f53 2026-02-03 15:16:39 +00:00
renovate[bot]
e01f598138 Update actions/setup-python digest to a309ff8 2026-02-03 15:16:32 +00:00
renovate[bot]
8915b008f7 Update actions/cache digest to cdf6c1f 2026-02-03 15:16:25 +00:00
renovate[bot]
d4fc645262 Update dependency tar to v7.5.7 [SECURITY] (#2823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 15:17:39 +00:00
renovate[bot]
5d27c0aa1b Update electron-builder to v26.6.0 (#2821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-28 16:05:40 +00:00
RiotRobot
8f9198bc74 Merge branch 'master' into develop 2026-01-27 13:05:25 +00:00
ElementRobot
5cde23b88a Merge pull request #2816 from element-hq/actions/localazy-download
Localazy Download
2026-01-23 06:24:04 +00:00
t3chguy
d3be664f17 [create-pull-request] automated change 2026-01-23 06:09:34 +00:00
renovate[bot]
9dd06fb45a Update dependency node-abi to v4.26.0 (#2812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-21 09:48:41 +00:00
renovate[bot]
379908b5b6 Update dependency tar to v7.5.4 [SECURITY] (#2810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-21 09:29:10 +00:00
Michael Telatynski
87baf1246b Generate badge icon for macOS DMG (#2809) 2026-01-21 09:05:56 +00:00
renovate[bot]
61ea39e2c8 Update npm non-major dependencies (#2805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:40:19 +00:00
renovate[bot]
444d4a06f2 Update dependency electron to v40 (#2808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:24:31 +00:00
renovate[bot]
bc741994e1 Update dependency @sentry/electron to v7.6.0 (#2806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:20:47 +00:00
renovate[bot]
2c65a38a51 Update rust:bullseye Docker digest to c6d501c (#2803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:20:17 +00:00
renovate[bot]
2eafa2720f Update docker/login-action digest to 0567fa5 (#2802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:19:15 +00:00
renovate[bot]
18c22f23f4 Update actions/setup-node digest to 6044e13 (#2801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:19:06 +00:00
renovate[bot]
4e2a7a5f22 Update actions/cache digest to 8b402f5 (#2800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:18:52 +00:00
renovate[bot]
c17ac70060 Update Node.js to v24.13.0 (#2807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:13:58 +00:00
renovate[bot]
4b9595d058 Update dependency eslint-plugin-n to v17.23.2 (#2804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 15:13:35 +00:00
17 changed files with 1097 additions and 1054 deletions

View File

@@ -55,7 +55,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
cache: "yarn"
node-version: "lts/*"

View File

@@ -116,13 +116,13 @@ jobs:
- name: Cache .hak
id: cache
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
with:
key: ${{ runner.os }}-${{ github.ref_name }}-${{ inputs.sqlcipher }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion', 'dockerbuild/*') }}
path: |
./.hak
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -90,7 +90,7 @@ jobs:
- name: Cache .hak
id: cache
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
with:
key: ${{ runner.os }}-${{ hashFiles('hakHash', 'electronVersion') }}
path: |
@@ -105,11 +105,15 @@ jobs:
rustup target add x86_64-apple-darwin
# M1 macos-14 comes without Python preinstalled
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.13"
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
# Install Quartz for DMG badges
# https://github.com/electron-userland/electron-builder/issues/9511#issuecomment-3774092888
- run: sudo pip3 install pyobjc-framework-Quartz
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -56,7 +56,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -40,7 +40,7 @@ jobs:
with:
repository: ${{ github.repository == 'element-hq/element-web-pro' && 'element-hq/element-desktop' || github.repository }}
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -119,7 +119,7 @@ jobs:
- name: Cache .hak
id: cache
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
with:
key: ${{ runner.os }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion') }}
path: |
@@ -148,7 +148,7 @@ jobs:
rustup default stable
rustup target add ${{ steps.config.outputs.target }}
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -42,7 +42,7 @@ jobs:
run: docker run -v $PWD:/project element-desktop-dockerbuild yarn install
- name: Log in to the Container registry
uses: docker/login-action@6862ffc5ab2cdb4405cf318a62a6f4c066e2298b
uses: docker/login-action@3227f5311cb93ffd14d13e65d8cc400d30f4dd8a
if: github.event_name != 'pull_request'
with:
registry: ${{ env.REGISTRY }}

View File

@@ -11,7 +11,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -37,7 +37,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -55,7 +55,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -73,7 +73,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: package.json
cache: "yarn"

View File

@@ -1 +1 @@
24.12.0
24.13.0

View File

@@ -1,6 +1,6 @@
# Docker image to facilitate building Element Desktop's native bits using a glibc version (2.31)
# with broader compatibility, down to Debian bullseye & Ubuntu focal.
FROM rust:bullseye@sha256:182c38f1049c4348a0286392d817d400a6cdb51eebb479d446cd6286bbe6e758
FROM rust:bullseye@sha256:3ebcc2d6d71fb93a2967e35723902c51dd87dbb36f66f795a58d7921553fbcd4
ENV DEBIAN_FRONTEND=noninteractive

View File

@@ -162,6 +162,9 @@ const config: Omit<Writable<Configuration>, "electronFuses"> & {
mergeASARs: true,
x64ArchFiles: "**/matrix-seshat/*.node", // hak already runs lipo
},
dmg: {
badgeIcon: "build/icon.icon",
},
win: {
target: ["squirrel", "msi"],
signtoolOptions: {

View File

@@ -76,7 +76,7 @@
"@babel/preset-env": "^7.18.10",
"@babel/preset-typescript": "^7.18.6",
"@electron/asar": "4.0.1",
"@playwright/test": "1.57.0",
"@playwright/test": "1.58.1",
"@stylistic/eslint-plugin": "^5.0.0",
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
@@ -85,12 +85,12 @@
"@types/pacote": "^11.1.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"app-builder-lib": "26.4.0",
"app-builder-lib": "26.6.0",
"chokidar": "^5.0.0",
"detect-libc": "^2.0.0",
"electron": "39.2.7",
"electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.4.0",
"electron": "40.1.0",
"electron-builder": "26.6.0",
"electron-builder-squirrel-windows": "26.6.0",
"electron-devtools-installer": "^4.0.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",
@@ -103,7 +103,7 @@
"husky": "^9.1.6",
"knip": "^5.0.0",
"lint-staged": "^16.0.0",
"matrix-web-i18n": "3.5.2",
"matrix-web-i18n": "3.6.0",
"mkdirp": "^3.0.0",
"pacote": "^21.0.0",
"patch-package": "^8.0.1",
@@ -118,10 +118,10 @@
"matrix-seshat": "^4.0.1"
},
"resolutions": {
"atomically": "2.0.5",
"atomically": "2.1.0",
"@types/node": "18.19.130",
"config-file-ts": "0.2.8-rc1",
"node-abi": "4.24.0",
"node-abi": "4.26.0",
"@types/pg-pool": "2.0.7"
}
}

View File

@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/playwright:v1.57.0-jammy@sha256:6aca677c27a967caf7673d108ac67ffaf8fed134f27e17b27a05464ca0ace831
FROM mcr.microsoft.com/playwright:v1.58.1-jammy@sha256:1b52a0833ae13c3bb16f728eec5f9216db29f3cd5eec21a9cbd33e7623723c0e
WORKDIR /work/element-desktop

View File

@@ -507,15 +507,44 @@ app.on("ready", async () => {
const exitShortcutPressed =
input.type === "keyDown" && exitShortcuts.some((shortcutFn) => shortcutFn(input, process.platform));
// We only care about the exit shortcuts here
if (!exitShortcutPressed || !global.mainWindow) return;
// Early return if:
// 1. Keys that were pressed are not shortcuts for exiting the app
// 2. Electron mainWindow is null for some reason
// 3. The application is already in the process of quitting
if (!exitShortcutPressed || !global.mainWindow || global.appQuitting) return;
// Prevent the default behaviour
event.preventDefault();
// Let's ask the user if they really want to exit the app
// Check if the user expects us to minimize to tray instead of quitting the app
const shouldMinimize = store.get("minimizeToTray") && (tray.hasTray() || process.platform === "darwin");
if (shouldMinimize) {
// On Mac, closing the window just hides it
// (this is generally how single-window Mac apps
// behave, eg. Mail.app)
if (global.mainWindow?.isFullScreen()) {
global.mainWindow.once("leave-full-screen", () => global.mainWindow?.hide());
global.mainWindow.setFullScreen(false);
} else {
global.mainWindow?.hide();
}
return;
}
// Quit the app; rest of the quit logic is on the close event handler below.
app.quit();
});
global.mainWindow.on("closed", () => {
global.mainWindow = null;
});
global.mainWindow.on("close", async (e) => {
// Check if the user expects us to ask for confirmation before quitting the app
const shouldWarnBeforeExit = store.get("warnBeforeExit", true);
if (shouldWarnBeforeExit) {
if (shouldWarnBeforeExit && global.mainWindow) {
const shouldCancelCloseRequest =
dialog.showMessageBoxSync(global.mainWindow, {
type: "question",
@@ -529,33 +558,11 @@ app.on("ready", async () => {
defaultId: 1,
cancelId: 0,
}) === 0;
if (shouldCancelCloseRequest) return;
}
// Exit the app
app.exit();
});
global.mainWindow.on("closed", () => {
global.mainWindow = null;
});
global.mainWindow.on("close", async (e) => {
// If we are not quitting and have a tray icon then minimize to tray
if (!global.appQuitting && (tray.hasTray() || process.platform === "darwin")) {
// On Mac, closing the window just hides it
// (this is generally how single-window Mac apps
// behave, eg. Mail.app)
e.preventDefault();
if (global.mainWindow?.isFullScreen()) {
global.mainWindow.once("leave-full-screen", () => global.mainWindow?.hide());
global.mainWindow.setFullScreen(false);
} else {
global.mainWindow?.hide();
if (shouldCancelCloseRequest) {
e.preventDefault();
global.appQuitting = false;
return false;
}
return false;
}
});

View File

@@ -35,7 +35,7 @@
"eol": {
"no_more_updates": "Používáte nepodporovanou verzi systému macOS. Prosím upgradujte %(brand)s pro získání aktualizací.",
"title": "Systém není podporován",
"warning": "Používáte nepodporovanou verzi systému macOS. Proveďte prosím upgrade %(brand)s , aby byl stále funkční."
"warning": "Používáte nepodporovanou verzi systému macOS. Proveďte prosím upgrade %(brand)s, aby byl stále funkční."
},
"file_menu": {
"label": "Soubor"

View File

@@ -6,7 +6,7 @@
"copy": "Salin",
"cut": "Potong",
"delete": "Hapus",
"edit": "Sunting",
"edit": "Edit",
"minimise": "Minimalkan",
"paste": "Tempel",
"paste_match_style": "Tempel dan Cocokkan Gaya",

2021
yarn.lock
View File

File diff suppressed because it is too large Load Diff