diff --git a/src/lib/ae_events/ae_events__event_file.ts b/src/lib/ae_events/ae_events__event_file.ts index 28cc6919..1650c694 100644 --- a/src/lib/ae_events/ae_events__event_file.ts +++ b/src/lib/ae_events/ae_events__event_file.ts @@ -539,6 +539,7 @@ export const properties_to_save = [ 'filename', 'extension', 'open_in_os', + 'cfg_json', 'lu_file_purpose_id', 'lu_event_file_purpose_name', 'file_purpose', diff --git a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte index e1fe40db..05f1a1e4 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -136,8 +136,22 @@ function get_launch_profile( null; const local_profiles = ($events_loc as any).launcher?.launch_profiles ?? null; const display_override = file_obj?.cfg_json?.display_override ?? null; + + // open_in_os = 'win' routes to the Windows-variant profile for apps that have one. + // These profiles target Windows PowerPoint / LibreOffice / Acrobat running via Parallels or CrossOver. + const WIN_EXTENSION_MAP: Record = { + pptx: 'pptxwin', + ppt: 'pptwin', + odp: 'odpwin', + pdf: 'pdfwin' + }; + const effective_extension = + file_obj?.open_in_os === 'win' + ? (WIN_EXTENSION_MAP[extension] ?? extension) + : extension; + return resolve_launch_profile( - extension, + effective_extension, display_override, device_profiles, local_profiles @@ -714,10 +728,11 @@ function prevent_default(fn: (event: T) => void) { {/if} - {#if $ae_loc.trusted_access && $ae_loc.is_native} + {#if $ae_loc.trusted_access} + Stored in event_file.cfg_json.display_override. Cycles null → extend → mirror → null. + Settable from any device — takes effect when the file is opened in native mode. -->