Compare commits

...

46 Commits

Author SHA1 Message Date
ElementRobot
060ac5b650 v1.11.39 2023-08-15 13:40:15 +01:00
ElementRobot
d06bf5b062 Prepare changelog for v1.11.39 2023-08-15 13:40:15 +01:00
ElementRobot
dd6ba612d0 v1.11.39-rc.1 2023-08-08 15:30:20 +01:00
ElementRobot
45c6a2b9f3 Prepare changelog for v1.11.39-rc.1 2023-08-08 15:30:20 +01:00
Element Translate Bot
cdd16c9cbd Translations update from Weblate (#1151)
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
2023-08-08 14:47:55 +01:00
RiotRobot
6319ba04d3 Merge branch 'master' into develop 2023-08-04 09:48:26 +01:00
RiotRobot
ae7fe02018 v1.11.38 2023-08-04 09:48:13 +01:00
RiotRobot
6adc753b30 Prepare changelog for v1.11.38 2023-08-04 09:48:12 +01:00
Michael Telatynski
1929351e91 Automatically trigger desktop packages on releases (#630) 2023-08-04 09:12:53 +01:00
renovate[bot]
0208c4d087 Update tj-actions/changed-files digest to 920e7b9 (#1110)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 22:08:51 +00:00
Michael Telatynski
d67822dae3 Simplify desktop packaging (#896) 2023-08-03 16:32:53 +01:00
Michael Telatynski
e2f7393ad5 Prevent the media lightbox sender info clipping with traffic light on macos (#1141) 2023-08-03 14:38:00 +01:00
Michael Telatynski
bc97be9ab7 Stop using abandoned actions-rs/toolchain action (#1132) 2023-08-02 14:34:38 +01:00
Michael Telatynski
ae1d8a896d Update build_and_deploy.yaml fix typo 2023-08-02 13:06:52 +01:00
Michael Telatynski
fd66c14544 Fix deploy not working if you skip any OSes
https://github.com/actions/runner/issues/491 for context
2023-08-02 13:05:22 +01:00
Germain
07523ecfdd Restore macOs room header dragability (#1136) 2023-08-02 07:05:13 +00:00
ElementRobot
6aac68ca9a Merge branch 'master' into develop 2023-08-01 12:54:56 +01:00
ElementRobot
ef457ca9d7 v1.11.37 2023-08-01 12:54:49 +01:00
ElementRobot
2dc0eb58dd Prepare changelog for v1.11.37 2023-08-01 12:54:49 +01:00
Michael Telatynski
1debdbeb47 Fix ability to interact with room topic in header (#1126) 2023-07-31 10:33:38 +02:00
Michael Telatynski
ef170eb94e Fix macos titlebar dragging not blocking the right panel (#1120) 2023-07-29 06:47:10 +01:00
Michael Telatynski
1234db90aa Switch to hidden titleBar on macOS to integrate the app better (#1101) 2023-07-28 12:51:33 +01:00
renovate[bot]
58bf462c47 Update all non-major dependencies (#1113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 12:21:24 +01:00
renovate[bot]
5ceed282a0 Update dependency playwright to v1.36.1 (#1112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 12:09:00 +01:00
renovate[bot]
6b2314e54e Update electron-builder to v24.6.2 (#1114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:32:38 +01:00
renovate[bot]
95c56b9168 Update dependency @types/node to v16.18.39 (#1111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:32:04 +01:00
renovate[bot]
11664eb97b Update dependency eslint-plugin-unicorn to v48 (#1115)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 11:31:50 +01:00
ElementRobot
436214df2e v1.11.37-rc.1 2023-07-27 09:56:29 +01:00
ElementRobot
6bfd6fe310 Prepare changelog for v1.11.37-rc.1 2023-07-27 09:56:29 +01:00
Element Translate Bot
4517225540 Translations update from Weblate (#1109)
Co-authored-by: James Choi <tienipia@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Srebrni <kiborg@novko.si>
Co-authored-by: iaiz <git@iapellaniz.com>
Co-authored-by: Edgars Andersons <Edgars+Element-translations@gaitenis.id.lv>
2023-07-27 08:53:27 +01:00
Michael Telatynski
0b31c6d510 Avoid using deprecated config.json key casing (#1099) 2023-07-24 08:36:57 +01:00
RiotRobot
62e29796de Merge branch 'master' into develop 2023-07-18 15:25:38 +01:00
renovate[bot]
29a16451cb Update docker/metadata-action digest to 35e9aff (#1064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 18:51:16 +00:00
Šimon Brandner
fedaba9583 Merge pull request #1081 from vector-im/SimonBrandner/feat/better-desk-ss
Switch to the new `session` API for screen-sharing
2023-07-14 22:05:26 +02:00
Šimon Brandner
a21e5afb84 Switch to the new session API for screen-sharing
See https://github.com/electron/electron/pull/30702 - this has the benefit of the js-sdk and LiveKit not having to add custom logic for Electron

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-07-14 12:09:12 +02:00
renovate[bot]
6c7d36dce6 Update tj-actions/changed-files digest to 1f20fb8 (#1065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 22:31:48 +00:00
renovate[bot]
10f4cc6293 Update all non-major dependencies (#1069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 15:04:56 +00:00
renovate[bot]
4e69dda7d2 Lock file maintenance (#1018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 11:27:24 +00:00
renovate[bot]
ae26804bac Update jest to v29.6.1 (#1070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:55:00 +00:00
renovate[bot]
6e086dc505 Update dependency app-builder-lib to v24.5.2 (#1068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:30:30 +00:00
renovate[bot]
9c885cd8b8 Update babel monorepo to v7.22.8 (#1066)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:29:27 +00:00
renovate[bot]
edad10fdad Update dependency @types/node to v16.18.38 (#1067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:26:03 +00:00
renovate[bot]
3c4be89c0b Update typescript-eslint monorepo to v5.61.0 (#1071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:28:09 +01:00
renovate[bot]
f85f98d34d Update docker/login-action digest to a979406 (#1063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:21:26 +01:00
renovate[bot]
a76c5b224c Update docker/build-push-action digest to 4fad532 (#1062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 10:21:03 +01:00
Michael Telatynski
9ddd26b2a3 Fix Tray icon in Windows forgetting your settings (#1059) 2023-07-11 17:00:24 +01:00
22 changed files with 1328 additions and 1402 deletions

View File

@@ -3,6 +3,9 @@ on:
# Nightly build
schedule:
- cron: "0 9 * * *"
# Release build
release:
types: [published]
# Manual nightly & release
workflow_dispatch:
inputs:
@@ -19,13 +22,8 @@ on:
required: true
type: boolean
default: true
windows_32bit:
description: Build Windows 32-bit
required: true
type: boolean
default: true
windows_64bit:
description: Build Windows 64-bit
windows:
description: Build Windows
required: true
type: boolean
default: true
@@ -47,36 +45,27 @@ jobs:
prepare:
uses: ./.github/workflows/build_prepare.yaml
with:
config: element.io/${{ inputs.mode || 'nightly' }}
version: ${{ inputs.mode != 'release' && 'develop' || '' }}
nightly: ${{ inputs.mode != 'release' }}
config: element.io/${{ inputs.mode || (github.event_name == 'release' && 'release') || 'nightly' }}
version: ${{ (inputs.mode != 'release' && github.event_name != 'release') && 'develop' || '' }}
nightly: ${{ inputs.mode != 'release' && github.event_name != 'release' }}
secrets:
CF_R2_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
CF_R2_TOKEN: ${{ secrets.CF_R2_TOKEN }}
windows_32bit:
if: github.event_name != 'workflow_dispatch' || inputs.windows_32bit
windows:
if: github.event_name != 'workflow_dispatch' || inputs.windows
needs: prepare
name: Windows 32-bit
name: Windows ${{ matrix.arch }}
strategy:
matrix:
arch: [x86, x64]
uses: ./.github/workflows/build_windows.yaml
secrets: inherit
with:
sign: true
deploy-mode: true
arch: x86
version: ${{ needs.prepare.outputs.win32-x86-version }}
windows_64bit:
if: github.event_name != 'workflow_dispatch' || inputs.windows_64bit
needs: prepare
name: Windows 64-bit
uses: ./.github/workflows/build_windows.yaml
secrets: inherit
with:
sign: true
deploy-mode: true
arch: x64
version: ${{ needs.prepare.outputs.win32-x64-version }}
arch: ${{ matrix.arch }}
version: ${{ needs.prepare.outputs.nightly-version }}
macos:
if: github.event_name != 'workflow_dispatch' || inputs.macos
@@ -87,8 +76,8 @@ jobs:
with:
sign: true
deploy-mode: true
base-url: https://packages.element.io/${{ inputs.mode == 'release' && 'desktop' || 'nightly' }}
version: ${{ needs.prepare.outputs.macos-version }}
base-url: https://packages.element.io/${{ needs.prepare.outputs.packages-dir }}
version: ${{ needs.prepare.outputs.nightly-version }}
# We do not put these calls into deploy-mode as we do not want it to add to the packages.element.io artifact
# We ship this build via reprepro only
@@ -102,9 +91,9 @@ jobs:
uses: ./.github/workflows/build_linux.yaml
with:
arch: ${{ matrix.arch }}
config: element.io/${{ inputs.mode || 'nightly' }}
config: ${{ needs.prepare.outputs.config }}
sqlcipher: system
version: ${{ needs.prepare.outputs.linux-version }}
version: ${{ needs.prepare.outputs.nightly-version }}
# We ship the static build via static tarball only
linux_static:
@@ -115,22 +104,29 @@ jobs:
with:
arch: amd64
deploy-mode: true
config: element.io/${{ inputs.mode || 'nightly' }}
config: ${{ needs.prepare.outputs.config }}
sqlcipher: static
version: ${{ needs.prepare.outputs.linux-version }}
version: ${{ needs.prepare.outputs.nightly-version }}
# This deploy job only handles Windows, macOS & linux_static as those are stateless and static.
# Linux will be deployed via reprepro after it, but we list it as a dependency to abort if it fails.
deploy:
needs:
- prepare
- macos
- linux
- linux_static
- windows_32bit
- windows_64bit
- windows
runs-on: ubuntu-latest
name: Deploy
if: github.event_name != 'workflow_dispatch' || (inputs.deploy && (inputs.macos || inputs.windows_32bit || inputs.windows_64bit))
if: |
(
github.event_name != 'workflow_dispatch' &&
github.event.release.prerelease != true
) || (
always() && !failure() && !cancelled() && inputs.deploy &&
(inputs.macos || inputs.windows || inputs.linux)
)
environment: packages.element.io
steps:
- name: Download artifacts
@@ -146,7 +142,7 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
R2_URL: ${{ vars.CF_R2_S3_API }}
DEPLOYMENT_DIR: ${{ inputs.mode == 'release' && 'desktop' || 'nightly' }}
DEPLOYMENT_DIR: ${{ needs.prepare.outputs.packages-dir }}
- name: Notify packages.element.io of new files
uses: peter-evans/repository-dispatch@26b39ed245ab8f31526069329e112ab2fb224588 # v2
@@ -164,7 +160,13 @@ jobs:
strategy:
matrix:
arch: [amd64, arm64]
if: github.event_name != 'workflow_dispatch' || (inputs.deploy && inputs.linux)
if: |
(
github.event_name != 'workflow_dispatch' &&
github.event.release.prerelease != true
) || (
always() && !failure() && !cancelled() && inputs.deploy && inputs.linux
)
uses: ./.github/workflows/reprepro.yaml
secrets: inherit
with:

View File

@@ -41,13 +41,13 @@ jobs:
- name: "Get modified files"
id: changed_files
uses: tj-actions/changed-files@bb3376162b179308a79fc4450262a15a8e1d6888 # v37
uses: tj-actions/changed-files@85c8b8252fc9893e00b3633a16670e53040e6d71 # v37
with:
files: |
dockerbuild/*
- name: Log in to the Container registry
if: steps.changed_files.outputs.any_modified == 'true'
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
uses: docker/login-action@a9794064588be971151ec5e7144cb535bcb56e36
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -63,7 +63,7 @@ jobs:
- name: Build and push Docker image
if: steps.changed_files.outputs.any_modified == 'true'
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825
uses: docker/build-push-action@4fad532b9fdbfb80f436784834374a1c11834153
with:
context: dockerbuild
push: true

View File

@@ -52,11 +52,10 @@ jobs:
- name: Install Rust
if: steps.cache.outputs.cache-hit != 'true'
uses: actions-rs/toolchain@88dc2356392166efad76775c878094f4e83ff746
with:
default: true
toolchain: stable
target: aarch64-apple-darwin
run: |
rustup toolchain install stable --profile minimal --no-self-update
rustup default stable
rustup target add aarch64-apple-darwin
- uses: actions/setup-node@v3
with:

View File

@@ -23,28 +23,23 @@ on:
CF_R2_TOKEN:
required: false
outputs:
macos-version:
description: "The version string the next macOS Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.macos-version }}
linux-version:
description: "The version string the next Linux Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.linux-version }}
win32-x64-version:
description: "The version string the next Windows x64 Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.win32-x64-version }}
win32-x86-version:
description: "The version string the next Windows x86 Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.win32-x86-version }}
nightly-version:
description: "The version string the next Nightly should use, only output for nightly"
value: ${{ jobs.prepare.outputs.nightly-version }}
packages-dir:
description: "The directory non-deb packages for this run should live in within packages.element.io"
value: ${{ inputs.nightly && 'nightly' || 'desktop' }}
# This is just a simple pass-through of the input to simplify reuse of complex inline conditions
config:
description: "The relative path to the config file for this run"
value: ${{ inputs.config }}
jobs:
prepare:
name: Prepare
environment: ${{ inputs.nightly && 'packages.element.io' || '' }}
runs-on: ubuntu-latest
outputs:
macos-version: ${{ steps.versions.outputs.macos }}
linux-version: ${{ steps.versions.outputs.linux }}
win32-x64-version: ${{ steps.versions.outputs.win_x64 }}
win32-x86-version: ${{ steps.versions.outputs.win_x86 }}
nightly-version: ${{ steps.versions.outputs.nightly }}
steps:
- uses: actions/checkout@v3
@@ -66,20 +61,21 @@ jobs:
find hak -type f -print0 | xargs -0 sha1sum >> hakHash
find scripts/hak -type f -print0 | xargs -0 sha1sum >> hakHash
- name: "[Nightly] Calculate versions"
- name: "[Nightly] Calculate version"
id: versions
if: inputs.nightly
run: |
MACOS=$(aws s3 cp s3://$R2_BUCKET/nightly/update/macos/releases.json - --endpoint-url $R2_URL --region auto | jq -r .currentRelease)
echo "macos=$(scripts/generate-nightly-version.ts --latest $MACOS)" >> $GITHUB_OUTPUT
# Find all latest Nightly versions
aws s3 cp s3://$R2_BUCKET/nightly/update/macos/releases.json - --endpoint-url $R2_URL --region auto | jq -r .currentRelease >> VERSIONS
aws s3 cp s3://$R2_BUCKET/debian/dists/default/main/binary-amd64/Packages - --endpoint-url $R2_URL --region auto | grep "Package: element-nightly" -A 50 | grep Version -m1 | sed -n 's/Version: //p' >> VERSIONS
aws s3 cp s3://$R2_BUCKET/debian/dists/default/main/binary-arm64/Packages - --endpoint-url $R2_URL --region auto | grep "Package: element-nightly" -A 50 | grep Version -m1 | sed -n 's/Version: //p' >> VERSIONS
aws s3 cp s3://$R2_BUCKET/nightly/update/win32/x64/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8- >> VERSIONS
aws s3 cp s3://$R2_BUCKET/nightly/update/win32/ia32/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8- >> VERSIONS
LINUX=$(aws s3 cp s3://$R2_BUCKET/debian/dists/default/main/binary-amd64/Packages - --endpoint-url $R2_URL --region auto | grep "Package: element-nightly" -A 50 | grep Version -m1 | sed -n 's/Version: //p')
echo "linux=$(scripts/generate-nightly-version.ts --latest $LINUX)" >> $GITHUB_OUTPUT
WINx64=$(aws s3 cp s3://$R2_BUCKET/nightly/update/win32/x64/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8-)
echo "win_x64=$(scripts/generate-nightly-version.ts --latest $WINx64)" >> $GITHUB_OUTPUT
WINx86=$(aws s3 cp s3://$R2_BUCKET/nightly/update/win32/ia32/RELEASES - --endpoint-url $R2_URL --region auto | awk '{print $2}' | cut -d "-" -f 5 | cut -c 8-)
echo "win_x86=$(scripts/generate-nightly-version.ts --latest $WINx86)" >> $GITHUB_OUTPUT
# Pick the greatest one
VERSION=$(cat VERSIONS | sort -uf | tail -n1)
# Increment it
echo "nightly=$(scripts/generate-nightly-version.ts --latest $VERSION)" >> $GITHUB_OUTPUT
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }}
@@ -123,14 +119,10 @@ jobs:
REACT_VERSION=${WEBAPP_VERSION:19:12}
JS_VERSION=${WEBAPP_VERSION:35:12}
echo "### Nightly build" >> $GITHUB_STEP_SUMMARY
echo "### Nightly build ${{ steps.versions.outputs.nightly }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Component | Version |" >> $GITHUB_STEP_SUMMARY
echo "| ----------- | ------- |" >> $GITHUB_STEP_SUMMARY
echo "| macOS | ${{ steps.versions.outputs.macos }} |" >> $GITHUB_STEP_SUMMARY
echo "| Linux | ${{ steps.versions.outputs.linux }} |" >> $GITHUB_STEP_SUMMARY
echo "| Windows x64 | ${{ steps.versions.outputs.win_x64 }} |" >> $GITHUB_STEP_SUMMARY
echo "| Windows x86 | ${{ steps.versions.outputs.win_x86 }} |" >> $GITHUB_STEP_SUMMARY
echo "| Bundle Hash | $BUNDLE_HASH |" >> $GITHUB_STEP_SUMMARY
echo "| Element Web | [$WEB_VERSION](https://github.com/vector-im/element-web/commit/$WEB_VERSION) |" >> $GITHUB_STEP_SUMMARY
echo "| React SDK | [$REACT_VERSION](https://github.com/matrix-org/matrix-react-sdk/commit/$REACT_VERSION) |" >> $GITHUB_STEP_SUMMARY

View File

@@ -95,11 +95,10 @@ jobs:
- name: Install Rust
if: steps.cache.outputs.cache-hit != 'true'
uses: actions-rs/toolchain@88dc2356392166efad76775c878094f4e83ff746
with:
default: true
toolchain: stable
target: ${{ steps.config.outputs.target }}
run: |
rustup toolchain install stable --profile minimal --no-self-update
rustup default stable
rustup target add ${{ steps.config.outputs.target }}
- uses: actions/setup-node@v3
with:

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
uses: docker/login-action@a9794064588be971151ec5e7144cb535bcb56e36
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -28,14 +28,14 @@ jobs:
- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@ef25336f420be2d1a49205baf41a9b88712a65a1
uses: docker/metadata-action@35e9aff4f5d665b5aa8a8f2adffaf8a1b5f49cc0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
- name: Build and push Docker image
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825
uses: docker/build-push-action@4fad532b9fdbfb80f436784834374a1c11834153
with:
context: dockerbuild
push: true

View File

@@ -1,3 +1,105 @@
Changes in [1.11.39](https://github.com/vector-im/element-desktop/releases/tag/v1.11.39) (2023-08-15)
=====================================================================================================
## 🦖 Deprecations
* Deprecate camelCase config options ([\#25800](https://github.com/vector-im/element-web/pull/25800)).
* Deprecate customisations in favour of Module API ([\#25736](https://github.com/vector-im/element-web/pull/25736)). Fixes vector-im/element-web#25733.
## ✨ Features
* Switch to hidden titleBar on macOS to integrate the app better ([\#1101](https://github.com/vector-im/element-desktop/pull/1101)).
* Update labs.md for knock rooms ([\#25923](https://github.com/vector-im/element-web/pull/25923)). Contributed by @charlynguyen.
* Package release builds of element-web in package.element.io debs ([\#25198](https://github.com/vector-im/element-web/pull/25198)).
* Allow knocking rooms ([\#11353](https://github.com/matrix-org/matrix-react-sdk/pull/11353)). Contributed by @charlynguyen.
* Support adding space-restricted joins on rooms not members of those spaces ([\#9017](https://github.com/matrix-org/matrix-react-sdk/pull/9017)). Fixes vector-im/element-web#19213.
* Clear requiresClient and show pop-out if widget-api fails to ready ([\#11321](https://github.com/matrix-org/matrix-react-sdk/pull/11321)). Fixes vector-im/customer-retainer#73.
* Bump pagination sizes due to hidden events ([\#11342](https://github.com/matrix-org/matrix-react-sdk/pull/11342)).
* Remove display of key backup signatures from backup settings ([\#11333](https://github.com/matrix-org/matrix-react-sdk/pull/11333)).
* Use PassphraseFields in ExportE2eKeysDialog to enforce minimum passphrase complexity ([\#11222](https://github.com/matrix-org/matrix-react-sdk/pull/11222)). Fixes vector-im/element-web#9478.
## 🐛 Bug Fixes
* Prevent the media lightbox sender info clipping with traffic light on macos ([\#1141](https://github.com/vector-im/element-desktop/pull/1141)). Fixes #1140.
* Restore macOs room header dragability ([\#1136](https://github.com/vector-im/element-desktop/pull/1136)). Fixes #1135.
* Fix ability to interact with room topic in header ([\#1126](https://github.com/vector-im/element-desktop/pull/1126)). Fixes undefined/element-desktop#1125.
* Fix "Export chat" not respecting configured time format in plain text mode ([\#10696](https://github.com/matrix-org/matrix-react-sdk/pull/10696)). Fixes vector-im/element-web#23838. Contributed by @rashmitpankhania.
* Fix some missing 1-count pluralisations around event list summaries ([\#11371](https://github.com/matrix-org/matrix-react-sdk/pull/11371)). Fixes vector-im/element-web#25925.
* Fix create subspace dialog not working for public space creation ([\#11367](https://github.com/matrix-org/matrix-react-sdk/pull/11367)). Fixes vector-im/element-web#25916.
* Search for users on paste ([\#11304](https://github.com/matrix-org/matrix-react-sdk/pull/11304)). Fixes vector-im/element-web#17523. Contributed by @peterscheu-aceart.
* Fix AppTile context menu not always showing up when it has options ([\#11358](https://github.com/matrix-org/matrix-react-sdk/pull/11358)). Fixes vector-im/element-web#25914.
* Fix clicking on home all rooms space notification not working ([\#11337](https://github.com/matrix-org/matrix-react-sdk/pull/11337)). Fixes vector-im/element-web#22844.
* Fix joining a suggested room switching space away ([\#11347](https://github.com/matrix-org/matrix-react-sdk/pull/11347)). Fixes vector-im/element-web#25838.
* Fix home/all rooms context menu in space panel ([\#11350](https://github.com/matrix-org/matrix-react-sdk/pull/11350)). Fixes vector-im/element-web#25896.
* Make keyboard handling in and out of autocomplete completions consistent ([\#11344](https://github.com/matrix-org/matrix-react-sdk/pull/11344)). Fixes vector-im/element-web#25878.
* De-duplicate reactions by sender to account for faulty/malicious servers ([\#11340](https://github.com/matrix-org/matrix-react-sdk/pull/11340)). Fixes vector-im/element-web#25872.
* Fix disable_3pid_login being ignored for the email field ([\#11335](https://github.com/matrix-org/matrix-react-sdk/pull/11335)). Fixes vector-im/element-web#25863.
* Upgrade wysiwyg editor for ctrl+backspace windows fix ([\#11324](https://github.com/matrix-org/matrix-react-sdk/pull/11324)). Fixes vector-im/verticals-internal#102.
* Unhide the view source event toggle - it works well enough ([\#11336](https://github.com/matrix-org/matrix-react-sdk/pull/11336)). Fixes vector-im/element-web#25861.
Changes in [1.11.38](https://github.com/vector-im/element-desktop/releases/tag/v1.11.38) (2023-08-04)
=====================================================================================================
## ✨ Features
* Package release builds of element-web in package.element.io debs ([\#25921](https://github.com/vector-im/element-web/pull/25921)). Contributed by @RiotRobot.
## 🐛 Bug Fixes
* Revert to using the /presence API for presence ([\#11366](https://github.com/matrix-org/matrix-react-sdk/pull/11366))
Changes in [1.11.37](https://github.com/vector-im/element-desktop/releases/tag/v1.11.37) (2023-08-01)
=====================================================================================================
## 🦖 Deprecations
* Deprecate camelCase config options ([\#25800](https://github.com/vector-im/element-web/pull/25800)).
* Deprecate customisations in favour of Module API ([\#25736](https://github.com/vector-im/element-web/pull/25736)). Fixes vector-im/element-web#25733.
## ✨ Features
* Fix Tray icon in Windows forgetting your settings ([\#1059](https://github.com/vector-im/element-desktop/pull/1059)). Fixes #786.
* Do not show "Forget room" button in Room View header for guest users ([\#10898](https://github.com/matrix-org/matrix-react-sdk/pull/10898)). Contributed by @spantaleev.
* Switch to updating presence via /sync calls instead of PUT /presence ([\#11223](https://github.com/matrix-org/matrix-react-sdk/pull/11223)). Fixes vector-im/element-web#20809 vector-im/element-web#13877 and vector-im/element-web#4813.
* Fix blockquote colour contrast ([\#11299](https://github.com/matrix-org/matrix-react-sdk/pull/11299)). Fixes matrix-org/element-web-rageshakes#21800.
* Don't hide room header buttons in video rooms and rooms with a call ([\#9712](https://github.com/matrix-org/matrix-react-sdk/pull/9712)). Fixes vector-im/element-web#23900.
* OIDC: Persist details in session storage, create store ([\#11302](https://github.com/matrix-org/matrix-react-sdk/pull/11302)). Fixes vector-im/element-web#25710. Contributed by @kerryarchibald.
* Allow setting room join rule to knock ([\#11248](https://github.com/matrix-org/matrix-react-sdk/pull/11248)). Contributed by @charlynguyen.
* Retry joins on 524 (Cloudflare timeout) also ([\#11296](https://github.com/matrix-org/matrix-react-sdk/pull/11296)). Fixes vector-im/element-web#8776.
* Make sure users returned by the homeserver search API are displayed. Don't silently drop any. ([\#9556](https://github.com/matrix-org/matrix-react-sdk/pull/9556)). Fixes vector-im/element-web#24422. Contributed by @maxmalek.
* Offer to unban user during invite if inviter has sufficient permissions ([\#11256](https://github.com/matrix-org/matrix-react-sdk/pull/11256)). Fixes vector-im/element-web#3222.
* Split join and goto slash commands, the latter shouldn't auto_join ([\#11259](https://github.com/matrix-org/matrix-react-sdk/pull/11259)). Fixes vector-im/element-web#10128.
* Integration work for rich text editor 2.3.1 ([\#11172](https://github.com/matrix-org/matrix-react-sdk/pull/11172)). Contributed by @alunturner.
* Compound color pass ([\#11079](https://github.com/matrix-org/matrix-react-sdk/pull/11079)). Fixes vector-im/internal-planning#450 and vector-im/element-web#25547.
* Warn when demoting self via /op and /deop slash commands ([\#11214](https://github.com/matrix-org/matrix-react-sdk/pull/11214)). Fixes vector-im/element-web#13726.
## 🐛 Bug Fixes
* Correct Jitsi preferred_domain property ([\#25813](https://github.com/vector-im/element-web/pull/25813)). Contributed by @benbz.
* Fix edge case with sent indicator being drawn when it shouldn't be ([\#11320](https://github.com/matrix-org/matrix-react-sdk/pull/11320)).
* Use correct translation function for WYSIWYG buttons ([\#11315](https://github.com/matrix-org/matrix-react-sdk/pull/11315)). Fixes vector-im/verticals-internal#109.
* Handle empty own profile ([\#11319](https://github.com/matrix-org/matrix-react-sdk/pull/11319)). Fixes vector-im/element-web#25510.
* Fix peeked rooms showing up in historical ([\#11316](https://github.com/matrix-org/matrix-react-sdk/pull/11316)). Fixes vector-im/element-web#22473.
* Ensure consistency when rendering the sent event indicator ([\#11314](https://github.com/matrix-org/matrix-react-sdk/pull/11314)). Fixes vector-im/element-web#17937.
* Prevent re-filtering user directory results in spotlight ([\#11290](https://github.com/matrix-org/matrix-react-sdk/pull/11290)). Fixes vector-im/element-web#24422.
* Fix GIF label on dark theme ([\#11312](https://github.com/matrix-org/matrix-react-sdk/pull/11312)). Fixes vector-im/element-web#25836.
* Fix issues around room notification settings flaking out ([\#11306](https://github.com/matrix-org/matrix-react-sdk/pull/11306)). Fixes vector-im/element-web#16472 vector-im/element-web#21309 and vector-im/element-web#6828.
* Fix invite dialog showing the same user multiple times ([\#11308](https://github.com/matrix-org/matrix-react-sdk/pull/11308)). Fixes vector-im/element-web#25578.
* Don't show composer send button if user cannot send ([\#11298](https://github.com/matrix-org/matrix-react-sdk/pull/11298)). Fixes vector-im/element-web#25825.
* Restore color for sender in imageview ([\#11289](https://github.com/matrix-org/matrix-react-sdk/pull/11289)). Fixes vector-im/element-web#25822.
* Fix changelog dialog heading size ([\#11286](https://github.com/matrix-org/matrix-react-sdk/pull/11286)). Fixes vector-im/element-web#25789.
* Restore offline presence badge color ([\#11287](https://github.com/matrix-org/matrix-react-sdk/pull/11287)). Fixes vector-im/element-web#25792.
* Fix bubble message layout avatar overlap ([\#11284](https://github.com/matrix-org/matrix-react-sdk/pull/11284)). Fixes vector-im/element-web#25818.
* Fix voice call tile size ([\#11285](https://github.com/matrix-org/matrix-react-sdk/pull/11285)). Fixes vector-im/element-web#25684.
* Fix layout of sessions tab buttons ([\#11279](https://github.com/matrix-org/matrix-react-sdk/pull/11279)). Fixes vector-im/element-web#25545.
* Don't bother showing redundant tooltip on space menu ([\#11276](https://github.com/matrix-org/matrix-react-sdk/pull/11276)). Fixes vector-im/element-web#20380.
* Remove reply fallback from notifications ([\#11278](https://github.com/matrix-org/matrix-react-sdk/pull/11278)). Fixes vector-im/element-web#17859.
* Populate info.duration for audio & video file uploads ([\#11225](https://github.com/matrix-org/matrix-react-sdk/pull/11225)). Fixes vector-im/element-web#17720.
* Hide widget menu button if it there are no options available ([\#11257](https://github.com/matrix-org/matrix-react-sdk/pull/11257)). Fixes vector-im/element-web#24826.
* Fix colour regressions ([\#11273](https://github.com/matrix-org/matrix-react-sdk/pull/11273)). Fixes vector-im/element-web#25788, vector-im/element-web#25808 vector-im/element-web#25811 and vector-im/element-web#25812.
* Fix room view not properly maintaining scroll position ([\#11274](https://github.com/matrix-org/matrix-react-sdk/pull/11274)). Fixes vector-im/element-web#25810.
* Prevent user from accidentally double clicking user info admin actions ([\#11254](https://github.com/matrix-org/matrix-react-sdk/pull/11254)). Fixes vector-im/element-web#10944.
* Fix missing metaspace notification badges ([\#11269](https://github.com/matrix-org/matrix-react-sdk/pull/11269)). Fixes vector-im/element-web#25679.
* Fix clicking MXID in timeline going to matrix.to ([\#11263](https://github.com/matrix-org/matrix-react-sdk/pull/11263)). Fixes vector-im/element-web#23342.
* Restoring optional ligatures by resetting letter-spacing ([\#11202](https://github.com/matrix-org/matrix-react-sdk/pull/11202)). Fixes vector-im/element-web#25727.
* Allow emoji presentation selector to not break BigEmoji styling ([\#11253](https://github.com/matrix-org/matrix-react-sdk/pull/11253)). Fixes vector-im/element-web#17848.
* Make event highliht use primary content token ([\#11255](https://github.com/matrix-org/matrix-react-sdk/pull/11255)).
* Fix event info events size and color ([\#11252](https://github.com/matrix-org/matrix-react-sdk/pull/11252)). Fixes vector-im/element-web#25778.
* Fix color mapping for blockquote border ([\#11251](https://github.com/matrix-org/matrix-react-sdk/pull/11251)). Fixes vector-im/element-web#25782.
* Strip emoji variation when searching emoji by emoji ([\#11221](https://github.com/matrix-org/matrix-react-sdk/pull/11221)). Fixes vector-im/element-web#18703.
Changes in [1.11.36](https://github.com/vector-im/element-desktop/releases/tag/v1.11.36) (2023-07-18)
=====================================================================================================

View File

@@ -21,8 +21,8 @@
],
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"uisi_autorageshake_app": "element-auto-uisi",
"showLabsSettings": true,
"roomDirectory": {
"show_labs_settings": true,
"room_directory": {
"servers": ["matrix.org", "gitter.im", "libera.chat"]
},
"enable_presence_by_hs_url": {
@@ -44,8 +44,8 @@
"environment": "nightly"
},
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
"project_api_key": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"api_host": "https://posthog.element.io"
},
"privacy_policy_url": "https://element.io/cookie-policy",
"features": {

View File

@@ -21,10 +21,10 @@
],
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"uisi_autorageshake_app": "element-auto-uisi",
"roomDirectory": {
"room_directory": {
"servers": ["matrix.org", "gitter.im", "libera.chat"]
},
"showLabsSettings": false,
"show_labs_settings": false,
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
@@ -40,8 +40,8 @@
}
],
"posthog": {
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"apiHost": "https://posthog.element.io"
"project_api_key": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
"api_host": "https://posthog.element.io"
},
"privacy_policy_url": "https://element.io/cookie-policy",
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx"

View File

@@ -2,7 +2,7 @@
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
"version": "1.11.36",
"version": "1.11.39",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"homepage": "https://element.io",
@@ -64,7 +64,8 @@
"electron-window-state": "^5.0.3",
"minimist": "^1.2.6",
"node-fetch": "^2",
"png-to-ico": "^2.1.1"
"png-to-ico": "^2.1.1",
"uuid": "^9.0.0"
},
"devDependencies": {
"@babel/core": "^7.18.10",
@@ -78,26 +79,27 @@
"@types/jest": "^29.0.0",
"@types/minimist": "^1.2.1",
"@types/mkdirp": "^1.0.2",
"@types/node": "16.18.37",
"@types/node": "16.18.39",
"@types/pacote": "^11.1.1",
"@types/tar": "^6.1.3",
"@types/uuid": "^9.0.2",
"@typescript-eslint/eslint-plugin": "^5.42.0",
"@typescript-eslint/parser": "^5.42.0",
"allchange": "^1.0.6",
"app-builder-lib": "24.5.0",
"app-builder-lib": "24.6.2",
"babel-jest": "^29.0.0",
"chokidar": "^3.5.2",
"detect-libc": "^1.0.3",
"electron": "^25.0.0",
"electron-builder": "24.4.0",
"electron-builder-squirrel-windows": "24.5.0",
"electron-builder": "24.6.2",
"electron-builder-squirrel-windows": "24.6.2",
"electron-devtools-installer": "^3.2.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-matrix-org": "^1.0.0",
"eslint-plugin-unicorn": "^47.0.0",
"eslint-plugin-unicorn": "^48.0.0",
"expect-playwright": "^0.8.0",
"find-npm-prefix": "^1.0.2",
"fs-extra": "^11.0.0",
@@ -113,14 +115,14 @@
"tar": "^6.1.2",
"ts-jest": "^29.0.0",
"ts-node": "^10.9.1",
"typescript": "5.1.3"
"typescript": "5.1.6"
},
"hakDependencies": {
"matrix-seshat": "^3.0.1",
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "16.18.37"
"@types/node": "16.18.39"
},
"build": {
"appId": "im.riot.app",

View File

@@ -0,0 +1,29 @@
/*
Copyright 2023 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { Streams } from "electron";
type DisplayMediaCallback = (streams: Streams) => void;
let displayMediaCallback: DisplayMediaCallback | null;
export const getDisplayMediaCallback = (): DisplayMediaCallback | null => {
return displayMediaCallback;
};
export const setDisplayMediaCallback = (callback: DisplayMediaCallback | null): void => {
displayMediaCallback = callback;
};

View File

@@ -19,7 +19,7 @@ limitations under the License.
// Squirrel on windows starts the app with various flags as hooks to tell us when we've been installed/uninstalled etc.
import "./squirrelhooks";
import { app, BrowserWindow, Menu, autoUpdater, protocol, dialog, Input, Event } from "electron";
import { app, BrowserWindow, Menu, autoUpdater, protocol, dialog, Input, Event, session } from "electron";
import * as Sentry from "@sentry/electron/main";
import AutoLaunch from "auto-launch";
import path from "path";
@@ -39,6 +39,8 @@ import webContentsHandler from "./webcontents-handler";
import * as updater from "./updater";
import { getProfileFromDeeplink, protocolInit } from "./protocol";
import { _t, AppLocalization } from "./language-helper";
import { setDisplayMediaCallback } from "./displayMediaCallback";
import { setupMacosTitleBar } from "./macos-titlebar";
const argv = minimist(process.argv, {
alias: { help: "h" },
@@ -453,6 +455,9 @@ app.on("ready", async () => {
// https://www.electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do
backgroundColor: "#fff",
titleBarStyle: process.platform === "darwin" ? "hidden" : "default",
trafficLightPosition: { x: 9, y: 8 },
icon: global.trayConfig.icon_path,
show: false,
autoHideMenuBar: global.store.get("autoHideMenuBar", true),
@@ -471,6 +476,10 @@ app.on("ready", async () => {
});
global.mainWindow.loadURL("vector://vector/webapp/");
if (process.platform === "darwin") {
setupMacosTitleBar(global.mainWindow);
}
// Handle spellchecker
// For some reason spellCheckerEnabled isn't persisted, so we have to use the store here
global.mainWindow.webContents.session.setSpellCheckerEnabled(global.store.get("spellCheckerEnabled", true));
@@ -532,6 +541,11 @@ app.on("ready", async () => {
store: global.store,
components: [(): void => tray.initApplicationMenu(), (): void => Menu.setApplicationMenu(buildMenuTemplate())],
});
session.defaultSession.setDisplayMediaRequestHandler((_, callback) => {
global.mainWindow?.webContents.send("openDesktopCapturerSourcePicker");
setDisplayMediaCallback(callback);
});
});
app.on("window-all-closed", () => {

View File

@@ -42,5 +42,6 @@
"Are you sure you want to quit?": "¿Quieres salir?",
"Cancel": "Cancelar",
"Copy image address": "Copiar dirección de la imagen",
"Close %(brand)s": "Cerrar %(brand)s"
"Close %(brand)s": "Cerrar %(brand)s",
"%(brand)s Help": "Ayuda sobre %(brand)s"
}

View File

@@ -8,5 +8,17 @@
"Edit": "수정",
"Quit": "종료",
"Delete": "삭제",
"Cancel": "취소"
"Cancel": "취소",
"Are you sure you want to quit?": "종료하시겠습니까?",
"Show/Hide": "보이기/숨기기",
"Redo": "되돌리기",
"Cut": "잘라내기",
"Copy": "복사하기",
"View": "보기",
"Actual Size": "실제 크기",
"Zoom In": "확대",
"Zoom Out": "축소",
"Close %(brand)s": "%(brand)s 닫기",
"Paste and Match Style": "붙여넣고 스타일 일치",
"Select All": "전체 선택"
}

View File

@@ -1,46 +1,47 @@
{
"Start Speaking": "Runājiet...",
"Start Speaking": "Uzsākt runāšanu",
"Add to dictionary": "Pievienot vārdnīcai",
"The image failed to save": "Attēlu neizdevās saglabāt",
"Failed to save image": "Neizdevās saglabāt attēlu",
"Save image as...": "Saglabāt attēlu kā...",
"Copy link address": "Kopēt saiti",
"Copy email address": "Kopēt e-pasta adresi",
"Copy image": "Kopēt attēlu",
"File": "Fails",
"Copy link address": "Ievietot saites adresi starpliktuvē",
"Copy email address": "Ievietot e-pasta adresi starpliktuvē",
"Copy image": "Ievietot attēlu starpliktuvē",
"File": "Datne",
"Bring All to Front": "Iznest visu priekšplānā",
"Zoom": "Mērogošana",
"Stop Speaking": "Beidziet runāt",
"Zoom": "Tālummaiņa",
"Stop Speaking": "Pārtraukt runāšanu",
"Speech": "Runa",
"Unhide": "Rādīt",
"Hide Others": "Slēpt citus",
"Hide": "Slēpt",
"Hide Others": "Paslēpt citus",
"Hide": "Paslēpt",
"Services": "Pakalpojumi",
"About": "Par programmu",
"About": "Par",
"Help": "Palīdzība",
"Close": "Aizvērt",
"Minimize": "Minimizēt",
"Minimize": "Samazināt",
"Window": "Logs",
"Toggle Developer Tools": "Pārslēgt uz Izstrādātāja rīkiem",
"Toggle Full Screen": "Pārslēgt uz pilnekrānu",
"Toggle Developer Tools": "Pārslēgt izstrādātāja rīkus",
"Toggle Full Screen": "Pārslēgt pilnekrānu",
"Preferences": "Iestatījumi",
"Zoom Out": "Samazināt",
"Zoom In": "Palielināt",
"Actual Size": "Faktiskais izmērs",
"Zoom Out": "Tālināt",
"Zoom In": "Tuvināt",
"Actual Size": "Īstais izmērs",
"View": "Skats",
"Select All": "Atzīmēt visus",
"Delete": "Dzēst",
"Paste and Match Style": "Ievietot, saglabājot stilu",
"Paste": "Ievietot",
"Copy": "Kopēt",
"Select All": "Atzīmēt visu",
"Delete": "Izdzēst",
"Paste and Match Style": "Ielīmēt un pielāgot stilu",
"Paste": "Ielīmēt",
"Copy": "Ievietot starpliktuvē",
"Cut": "Izgriezt",
"Redo": "Atatgriezt/atatsaukt/atatdarīt",
"Undo": "Atgriezt/atsaukt/atdarīt",
"Edit": "Rediģēt",
"Redo": "Atatsaukt",
"Undo": "Atsaukt",
"Edit": "Labot",
"Quit": "Iziet",
"Show/Hide": "Rādīt/nerādīt",
"Are you sure you want to quit?": "Tiešām vēlaties iziet?",
"Show/Hide": "Parādīt/paslēpt",
"Are you sure you want to quit?": "Vai tiešām iziet?",
"Cancel": "Atcelt",
"Copy image address": "Kopēt attēla adresi",
"Close %(brand)s": "Aizvērt %(brand)s"
"Copy image address": "Ievietot attēla adresi starpliktuvē",
"Close %(brand)s": "Aizvērt %(brand)s",
"%(brand)s Help": "%(brand)s palīdzība"
}

47
src/i18n/strings/sl.json Normal file
View File

@@ -0,0 +1,47 @@
{
"Undo": "Razveljavi",
"Redo": "Uveljavi",
"Copy": "Kopiraj",
"Paste": "Prilepi",
"Actual Size": "Dejanska velikost",
"Zoom Out": "Oddalji",
"Window": "Okno",
"Minimize": "Zmanjšaj",
"Help": "Pomoč",
"About": "O programu",
"Services": "Storitve",
"Hide Others": "Skrij ostalo",
"Unhide": "Razkrij",
"Speech": "Govor",
"Copy link address": "Kopiraj naslov povezave",
"Add to dictionary": "Dodaj v slovar",
"Cancel": "Prekliči",
"Close %(brand)s": "Zapri %(brand)s",
"Are you sure you want to quit?": "Ste prepričani, da želite zapreti program?",
"Show/Hide": "Prikaži/Skrij",
"Quit": "Končaj",
"Edit": "Uredi",
"Cut": "Izreži",
"Paste and Match Style": "Prilepi ter obdrži oblikovanje",
"Delete": "Izbriši",
"Select All": "Izberi vse",
"View": "Poglej",
"Zoom In": "Približaj",
"Preferences": "Nastavitve",
"Toggle Full Screen": "Preklopi čez cel zaslon",
"Toggle Developer Tools": "Preklopi na orodja za razvijalce",
"Close": "Zapri",
"%(brand)s Help": "%(brand)s pomoč",
"Hide": "Skrij",
"Start Speaking": "Začnite govoriti",
"Stop Speaking": "Prenehajte govoriti",
"Zoom": "Povečaj",
"Bring All to Front": "Postavi vse v ospredje",
"File": "Datoteka",
"Copy image": "Kopiraj sliko",
"Copy email address": "Kopiraj e-poštni naslov",
"Copy image address": "Kopiraj naslov slike",
"Save image as...": "Shrani sliko kot...",
"Failed to save image": "Shranjevanje slike ni uspelo",
"The image failed to save": "Slike ni bilo mogoče shraniti"
}

View File

@@ -42,5 +42,6 @@
"Show/Hide": "Показати/Сховати",
"Are you sure you want to quit?": "Ви впевнені, що хочете вийти?",
"Close %(brand)s": "Закрити %(brand)s",
"Cancel": "Скасувати"
"Cancel": "Скасувати",
"%(brand)s Help": "Довідка %(brand)s"
}

View File

@@ -22,6 +22,7 @@ import { recordSSOSession } from "./protocol";
import { randomArray } from "./utils";
import { Settings } from "./settings";
import { keytar } from "./keytar";
import { getDisplayMediaCallback, setDisplayMediaCallback } from "./displayMediaCallback";
ipcMain.on("setBadgeCount", function (_ev: IpcMainEvent, count: number): void {
if (process.platform !== "win32") {
@@ -186,6 +187,11 @@ ipcMain.on("ipcCall", async function (_ev: IpcMainEvent, payload) {
thumbnailURL: source.thumbnail.toDataURL(),
}));
break;
case "callDisplayMediaCallback":
await getDisplayMediaCallback()?.({ video: args[0] });
setDisplayMediaCallback(null);
ret = null;
break;
case "clearStorage":
global.store.clear();

123
src/macos-titlebar.ts Normal file
View File

@@ -0,0 +1,123 @@
/*
Copyright 2023 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { BrowserWindow } from "electron";
export function setupMacosTitleBar(window: BrowserWindow): void {
if (process.platform !== "darwin") return;
let cssKey: string | undefined;
async function applyStyling(): Promise<void> {
cssKey = await window.webContents.insertCSS(`
/* Create margin of space for the traffic light buttons */
.mx_UserMenu {
margin-top: 32px !important;
}
/* Maintain alignment of the toggle space panel button */
.mx_SpacePanel_toggleCollapse {
/* 19px original top value, 32px margin-top above, 12px original margin-top value */
top: calc(19px + 32px - 12px) !important;
}
/* Prevent the media lightbox sender info from clipping into the traffic light buttons */
.mx_ImageView_info_wrapper {
margin-top: 32px;
}
/* Mark the splash screen as a drag handle */
.mx_MatrixChat_splash {
-webkit-app-region: drag;
}
/* Exclude the splash buttons from being drag handles */
.mx_MatrixChat_splashButtons {
-webkit-app-region: no-drag;
}
/* Mark the background as a drag handle */
.mx_AuthPage {
-webkit-app-region: drag;
}
/* Exclude the main content elements from being drag handles */
.mx_AuthPage .mx_AuthPage_modalBlur,
.mx_AuthPage .mx_AuthFooter > * {
-webkit-app-region: no-drag;
}
/* Mark the header as a drag handle */
.mx_LeftPanel .mx_LeftPanel_filterContainer {
-webkit-app-region: drag;
}
/* Exclude header interactive elements from being drag handles */
.mx_LeftPanel .mx_LeftPanel_filterContainer .mx_AccessibleButton {
-webkit-app-region: no-drag;
}
/* Mark the home page background as a drag handle */
.mx_HomePage {
-webkit-app-region: drag;
}
/* Exclude interactive elements from being drag handles */
.mx_HomePage .mx_HomePage_body,
.mx_HomePage .mx_HomePage_default_wrapper > * {
-webkit-app-region: no-drag;
}
/* Mark the header as a drag handle */
.mx_LegacyRoomHeader,
.mx_RoomHeader {
-webkit-app-region: drag;
-webkit-user-select: none;
}
/* Exclude header interactive elements from being drag handles */
.mx_RoomHeader .mx_DecoratedRoomAvatar,
.mx_RoomHeader_name,
.mx_LegacyRoomHeader .mx_LegacyRoomHeader_avatar,
.mx_LegacyRoomHeader .mx_E2EIcon,
.mx_LegacyRoomHeader .mx_RoomTopic,
.mx_LegacyRoomHeader .mx_AccessibleButton {
-webkit-app-region: no-drag;
}
/* Mark the background as a drag handle */
.mx_RoomView_wrapper {
-webkit-app-region: drag;
}
/* Exclude content elements from being drag handles */
.mx_SpaceRoomView_landing > *,
.mx_RoomPreviewBar,
.mx_RoomView_body,
.mx_AutoHideScrollbar,
.mx_RightPanel_ResizeWrapper,
.mx_RoomPreviewCard {
-webkit-app-region: no-drag;
}
`);
}
window.on("enter-full-screen", () => {
if (cssKey !== undefined) {
window.webContents.removeInsertedCSS(cssKey);
}
});
window.on("leave-full-screen", () => {
applyStyling();
});
window.webContents.on("did-finish-load", () => {
if (!window.isFullScreen()) {
applyStyling();
}
});
}

View File

@@ -34,6 +34,7 @@ const CHANNELS = [
"update-downloaded",
"userDownloadCompleted",
"userDownloadAction",
"openDesktopCapturerSourcePicker",
];
contextBridge.exposeInMainWorld("electron", {

View File

@@ -19,6 +19,7 @@ import { app, Tray, Menu, nativeImage } from "electron";
import pngToIco from "png-to-ico";
import path from "path";
import fs from "fs";
import { v5 as uuidv5 } from "uuid";
import { _t } from "./language-helper";
@@ -50,12 +51,28 @@ interface IConfig {
brand: string;
}
function getUuid(): string {
// The uuid field is optional and only needed on unsigned Windows packages where the executable path changes
// The hardcoded uuid is an arbitrary v4 uuid generated on https://www.uuidgenerator.net/version4
return global.vectorConfig["uuid"] || "eba84003-e499-4563-8e9d-166e34b5cc25";
}
export function create(config: IConfig): void {
// no trays on darwin
if (process.platform === "darwin" || trayIcon) return;
const defaultIcon = nativeImage.createFromPath(config.icon_path);
trayIcon = new Tray(defaultIcon);
let guid: string | undefined;
if (process.platform === "win32" && app.isPackaged) {
// Providing a GUID lets Windows be smarter about maintaining user's tray preferences
// https://github.com/electron/electron/pull/21891
// Ideally we would only specify it for signed packages but determining whether the app is signed sufficiently
// is non-trivial. So instead we have an escape hatch that unsigned packages can iterate the `uuid` in
// config.json to prevent Windows refusing GUID-reuse if their executable path changes.
guid = uuidv5(`${app.getName()}-${app.getPath("userData")}`, getUuid());
}
trayIcon = new Tray(defaultIcon, guid);
trayIcon.setToolTip(config.brand);
initApplicationMenu();
trayIcon.on("click", toggleWin);

2112
yarn.lock
View File

File diff suppressed because it is too large Load Diff