Files
solvecraft/apps
PaddleStroke b8eb8d262c Settings: saved to disk as soon as they change, not only when the app closes normally (#8275) (#9711)
* claim: #8275

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Settings: written to disk in the frame they change, not only at a clean exit (#8275)

eframe saves app.ron every 30 s and when the window closes normally. A
change made since the last save was lost whenever the app didn't close
normally: ended from the Task Manager, stopped by a sign-out or shutdown,
or crashed or hung in the graphics driver on the way out. The next start
then showed the old settings (View navigator back to Axes, Display quality
back to Normal).

The desktop app now writes its settings and flushes them in the frame they
change (frames with input and the one after), as the web app already does
(#8644). Unchanged settings are not written again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Settings: write at most once a second, and only after input that can change them (#8275)

Review: pointer motion came in every frame while the mouse moved, so the
settings were serialized every frame; and some settings change in every frame
(a panel's width while its edge is dragged), which would have flushed app.ron
on the UI thread each frame. Only clicks, keys, text, paste, wheel and pinch
count as input now, and the file is written at most once per second: a change
made in between waits, a repaint is asked for when its second is over, and it
is written then, so an idle app still writes it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:57:54 +00:00
..