switch to on-demand permission requests and improve suggestion UX

This commit is contained in:
CREDO23 2026-04-03 19:57:48 +02:00
parent aeb3f13f91
commit c5aa869adb
12 changed files with 195 additions and 89 deletions

View file

@ -1,6 +1,7 @@
import { clipboard, globalShortcut, ipcMain, screen } from 'electron';
import { IPC_CHANNELS } from '../../ipc/channels';
import { getFrontmostApp, hasAccessibilityPermission, simulatePaste } from '../platform';
import { hasScreenRecordingPermission, requestAccessibility, requestScreenRecording } from '../permissions';
import { getMainWindow } from '../window';
import { captureScreen } from './screenshot';
import { createSuggestionWindow, destroySuggestion, getSuggestionWindow } from './suggestion-window';
@ -19,9 +20,13 @@ function isSurfSenseWindow(): boolean {
async function triggerAutocomplete(): Promise<void> {
if (!autocompleteEnabled) return;
if (!hasAccessibilityPermission()) return;
if (isSurfSenseWindow()) return;
if (!hasScreenRecordingPermission()) {
requestScreenRecording();
return;
}
sourceApp = getFrontmostApp();
savedClipboard = clipboard.readText();
@ -59,7 +64,11 @@ async function triggerAutocomplete(): Promise<void> {
async function acceptAndInject(text: string): Promise<void> {
if (!sourceApp) return;
if (!hasAccessibilityPermission()) return;
if (!hasAccessibilityPermission()) {
requestAccessibility();
return;
}
clipboard.writeText(text);
destroySuggestion();