feat(editor): настройки экрана презентации при запуске сессии

Выбор монитора и полноэкранного режима в настройках; при «Запустить» окно презентации открывается на выбранном дисплее автоматически.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-09-02 13:05:50 +08:00
parent 8b28a9b11a
commit 746b862cb9
13 changed files with 437 additions and 13 deletions
+19
View File
@@ -24,6 +24,8 @@ import type {
PlayerTeamId,
PlayerImageOffset,
PlayersUpsertProgressEvent,
PresentationSettings,
DisplayInfo,
Scene,
SceneDarknessEvent,
SceneDarknessState,
@@ -160,6 +162,11 @@ export const ipcChannels = {
syncChromeTitles: 'windows.syncChromeTitles',
getPresentationContentSize: 'windows.getPresentationContentSize',
presentationContentSizeChanged: 'windows.presentationContentSizeChanged',
listDisplays: 'windows.listDisplays',
},
preferences: {
getPresentation: 'preferences.getPresentation',
setPresentation: 'preferences.setPresentation',
},
session: {
stateChanged: 'session.stateChanged',
@@ -687,6 +694,18 @@ export type IpcInvokeMap = {
req: Record<string, never>;
res: { width: number; height: number } | { width: null; height: null };
};
[ipcChannels.windows.listDisplays]: {
req: Record<string, never>;
res: { displays: DisplayInfo[] };
};
[ipcChannels.preferences.getPresentation]: {
req: Record<string, never>;
res: { settings: PresentationSettings };
};
[ipcChannels.preferences.setPresentation]: {
req: { settings: PresentationSettings };
res: { settings: PresentationSettings };
};
[ipcChannels.windows.openSceneDescription]: {
req: { html: string };
res: { ok: true };