mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-16 18:25:17 +02:00
native popup
This commit is contained in:
parent
98d7375b3c
commit
d9955547cd
1 changed files with 10 additions and 2 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
import { ipcMain, BrowserWindow, shell, dialog, systemPreferences } from 'electron';
|
import { ipcMain, BrowserWindow, shell, dialog, systemPreferences, desktopCapturer } from 'electron';
|
||||||
import { ipc } from '@x/shared';
|
import { ipc } from '@x/shared';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import os from 'node:os';
|
import os from 'node:os';
|
||||||
|
|
@ -723,7 +723,15 @@ export function setupIpcHandlers() {
|
||||||
if (process.platform !== 'darwin') return { granted: true };
|
if (process.platform !== 'darwin') return { granted: true };
|
||||||
const status = systemPreferences.getMediaAccessStatus('screen');
|
const status = systemPreferences.getMediaAccessStatus('screen');
|
||||||
console.log('[meeting] Screen recording permission status:', status);
|
console.log('[meeting] Screen recording permission status:', status);
|
||||||
return { granted: status === 'granted' };
|
if (status === 'granted') return { granted: true };
|
||||||
|
// Not granted — call desktopCapturer.getSources() to register the app
|
||||||
|
// in the macOS Screen Recording list. On first call this shows the
|
||||||
|
// native permission prompt (signed apps are remembered across restarts).
|
||||||
|
try { await desktopCapturer.getSources({ types: ['screen'] }); } catch { /* ignore */ }
|
||||||
|
// Re-check after the native prompt was dismissed
|
||||||
|
const statusAfter = systemPreferences.getMediaAccessStatus('screen');
|
||||||
|
console.log('[meeting] Screen recording permission status after prompt:', statusAfter);
|
||||||
|
return { granted: statusAfter === 'granted' };
|
||||||
},
|
},
|
||||||
'meeting:openScreenRecordingSettings': async () => {
|
'meeting:openScreenRecordingSettings': async () => {
|
||||||
await shell.openExternal('x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture');
|
await shell.openExternal('x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture');
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue