From bc7d802b24141d512dac663ddb2b85f85713faba Mon Sep 17 00:00:00 2001 From: Kaitlyn <87152313+kaitlynkittyy@users.noreply.github.com> Date: Thu, 28 Sep 2023 13:27:29 -0400 Subject: [PATCH] fixed screensharing under wayland, but caused other issues by updating electron to 26.2.3 --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- src/main/screenShare.ts | 8 ++++---- src/renderer/components/ScreenSharePicker.tsx | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d2598d7..1268526 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@typescript-eslint/parser": "^6.2.1", "@vencord/types": "^0.1.2", "dotenv": "^16.3.1", - "electron": "^25.8.2", + "electron": "26.2.3", "electron-builder": "^24.6.3", "esbuild": "^0.18.17", "eslint": "^8.46.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4437c6f..0c9d0c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,8 +32,8 @@ devDependencies: specifier: ^16.3.1 version: 16.3.1 electron: - specifier: ^25.8.2 - version: 25.8.2 + specifier: 26.2.3 + version: 26.2.3 electron-builder: specifier: ^24.6.3 version: 24.6.3 @@ -1766,8 +1766,8 @@ packages: - supports-color dev: true - /electron@25.8.2: - resolution: {integrity: sha512-AM1ra6b16EQuO1bJtiA8ZiWqqFLLgVfxD56ykiy+EA5C63Hkx8OmIbe+5JAsLiTwRVvBZ4oCAj6wa2qT+iq8ww==} + /electron@26.2.3: + resolution: {integrity: sha512-osdKf9mbhrqE81ITdvQ7TjVOayXfcAlWm8A6EtBt/eFSh7a/FijebGVkgs0S7qWQdhO0KaNZDb1Gx00sWuDQdw==} engines: {node: '>= 12.20.55'} hasBin: true requiresBuild: true diff --git a/src/main/screenShare.ts b/src/main/screenShare.ts index 7a1ccac..84a9baf 100644 --- a/src/main/screenShare.ts +++ b/src/main/screenShare.ts @@ -29,8 +29,8 @@ export function registerScreenShareHandler() { width: 176, height: 99 } - }); - + }).catch(() => null); + if (sources === null) return callback({}); const isWayland = process.platform === "linux" && (process.env.XDG_SESSION_TYPE === "wayland" || !!process.env.WAYLAND_DISPLAY); @@ -45,7 +45,7 @@ export function registerScreenShareHandler() { const video = data[0]; if (video) await request.frame.executeJavaScript( - `Vesktop.Components.ScreenShare.StreamSettings(${JSON.stringify([data])}, true)` + `Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify([video])}, true)` ); callback(video ? { video: sources[0] } : {}); @@ -53,7 +53,7 @@ export function registerScreenShareHandler() { } const choice = await request.frame - .executeJavaScript(`Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify(data)})`) + .executeJavaScript(`Vesktop.Components.ScreenShare.openScreenSharePicker(${JSON.stringify(data)}, false)`) .then(e => e as StreamPick) .catch(e => { console.error("Error during screenshare picker", e); diff --git a/src/renderer/components/ScreenSharePicker.tsx b/src/renderer/components/ScreenSharePicker.tsx index 412e964..dcb895d 100644 --- a/src/renderer/components/ScreenSharePicker.tsx +++ b/src/renderer/components/ScreenSharePicker.tsx @@ -71,7 +71,7 @@ addPatch({ } }); -export function openScreenSharePicker(screens: Source[], skipPicker = false) { +export function openScreenSharePicker(screens: Source[], skipPicker: boolean) { let didSubmit = false; return new Promise((resolve, reject) => { const key = openModal(