Route UI state save through platform services
This commit is contained in:
@@ -543,8 +543,9 @@ Known local toolchain state:
|
||||
render-target binding hooks, render platform hint hooks, render-capture frame
|
||||
hooks, render debug callback hooks, per-frame platform hooks, picker
|
||||
callbacks, recording cleanup, exported-image publishing, persistent storage
|
||||
flushing, document browse roots, live asset/layout reload policy, diagnostic
|
||||
stacktrace/crash hooks, prepared-file save/download handoff;
|
||||
flushing, document browse roots, native UI/window state saving, live
|
||||
asset/layout reload policy, diagnostic stacktrace/crash hooks, prepared-file
|
||||
save/download handoff;
|
||||
Windows
|
||||
live app execution now uses injected
|
||||
`WindowsPlatformServices` from
|
||||
|
||||
@@ -69,6 +69,7 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
| DEBT-0049 | Open | Modernization | `pp_assets::validate_ppbr_header` intentionally preserves the legacy PPBR version check from `NodePanelBrushPreset::import_ppbr`, which accepts files when either major is `0` or minor is `1` instead of requiring exactly version `0.1` | Avoid rejecting existing brush packages before compatibility fixtures prove the stricter rule is safe | `pp_assets_brush_package_tests`; `pano_cli plan-brush-package-export --path D:/Paint/clouds.ppbr`; `ctest --preset desktop-fast --build-config Debug`; `cmake --build --preset windows-msvc-default --config Debug --target PanoPainter` | Add PPBR compatibility fixtures for accepted/rejected historical package versions, then require canonical `0.1` or an explicit supported-version matrix and update live import accordingly |
|
||||
| DEBT-0050 | Open | Modernization | iOS exported-image photo-library publishing and WebGL persistent-storage flushing now dispatch through `PlatformServices`, but non-Windows execution still lives in `src/platform_legacy/legacy_platform_services.*` and forwards to retained `save_image_library`/`webgl_sync` bridges | Preserve current iOS/Web export and save behavior while the Apple/Web platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; platform package smoke once Apple/Web root builds exist | Exported-image publishing and persistent-storage flushing are owned by injected Apple/Web `pp_platform_*` services with no legacy adapter branch |
|
||||
| DEBT-0051 | Open | Modernization | Document browser search roots now dispatch through `PlatformServices`, but iOS `Inbox` inclusion still lives in `src/platform_legacy/legacy_platform_services.*` | Preserve current iOS document import/browse behavior while Apple platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; Apple package smoke once root Apple builds exist | Document browse roots are owned by injected Apple and desktop `pp_platform_*` services with no legacy adapter branch |
|
||||
| DEBT-0052 | Open | Modernization | Native UI/window state saving now dispatches through `PlatformServices`, but macOS execution still lives in `src/platform_legacy/legacy_platform_services.*` and forwards to the retained Objective-C app bridge | Preserve current Windows/macOS UI persistence while platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; Windows app build; Apple package smoke once root Apple builds exist | UI/window state persistence is owned by injected platform services with no legacy adapter branch |
|
||||
|
||||
## Closed Debt
|
||||
|
||||
|
||||
@@ -646,6 +646,10 @@ removing those direct platform calls from `Canvas` and brush preset storage.
|
||||
Document-browser search root selection now dispatches through
|
||||
`PlatformServices`, preserving the iOS `Inbox` root in the legacy adapter while
|
||||
removing the iOS-specific branch from `App::dialog_browse`.
|
||||
Native UI/window state saving now dispatches through `PlatformServices`,
|
||||
preserving Windows window placement persistence in `WindowsPlatformServices`
|
||||
and macOS UI state persistence in the legacy adapter while removing platform
|
||||
guards from `App::ui_save`.
|
||||
`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.
|
||||
@@ -1688,7 +1692,7 @@ Results:
|
||||
dispatch, render debug callback dispatch, render-capture frame hook dispatch,
|
||||
recording cleanup dispatch, exported-image publish dispatch, persistent
|
||||
storage flush dispatch, document browse-root dispatch,
|
||||
live asset/layout reload policy dispatch,
|
||||
native UI/window state save dispatch, live asset/layout reload policy dispatch,
|
||||
diagnostic hook dispatch, per-frame platform hook dispatch, picker callback
|
||||
dispatch, and prepared-file save/download callback dispatch. The live Windows
|
||||
app now
|
||||
|
||||
Reference in New Issue
Block a user