Route native close through platform services

This commit is contained in:
2026-06-03 04:36:10 +02:00
parent 537f0dcb2f
commit 22006eaf47
10 changed files with 47 additions and 19 deletions

View File

@@ -482,6 +482,10 @@ writes the temporary/exported payload.
`App::show_cursor`, `App::hide_cursor`, `App::showKeyboard`, and
`App::hideKeyboard` now dispatch through the active service without local
platform guards; unsupported platforms rely on their service no-op behavior.
The unsaved-document close prompt now requests native app/window close through
`PlatformServices`, with Windows implemented by `WindowsPlatformServices` and
macOS/Linux still handled by the legacy adapter until those platform shells
are injected.
`pano_cli plan-cloud-upload` exposes the app-core cloud upload decision used by
the live cloud upload command for missing-canvas, new-document warning, publish
prompt, and dirty-document save-before-upload states before legacy UI, canvas,
@@ -995,11 +999,12 @@ Results:
- `pp_platform_api_tests` passed, covering the SDK-free `PlatformServices`
interface for clipboard read/write, empty clipboard writes, cursor
visibility dispatch, virtual-keyboard visibility dispatch, external file
display dispatch, file sharing dispatch, picker callback dispatch, and
prepared-file save/download callback dispatch. The live Windows app now
consumes this interface through an injected `WindowsPlatformServices`
instance isolated in `src/platform_windows/windows_platform_services.*`;
other platforms still use the legacy fallback adapter, now isolated in
display dispatch, file sharing dispatch, native app/window close dispatch,
picker callback dispatch, and prepared-file save/download callback dispatch.
The live Windows app now consumes this interface through an injected
`WindowsPlatformServices` instance isolated in
`src/platform_windows/windows_platform_services.*`; other platforms still
use the legacy fallback adapter, now isolated in
`src/platform_legacy/legacy_platform_services.*` instead of being owned by
`app_events.cpp`.
- `panopainter_validate_shaders` passed, validating 25 shader programs and 7