mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-07 07:59:42 +02:00
fix(review): make WebGL toggle per-device and fix sticky-marker semantics (PR #140)
- saveAppSettings no longer sends webglRendererEnabled on the settings PUT: the key is absent from the .strict() SettingsUpdateSchema, so every save 400'd with INVALID_INPUT, silently killing all server-side settings persistence. Stripped in the per-device destructure alongside localEchoEnabled/skin/etc. - shouldSkipWebGL now treats a stored true like the untouched default w.r.t. the sticky marker: the checkbox defaults checked on desktop, so any unrelated save stored true and every page load then cleared the 'codeman-webgl-disabled' marker, permanently defeating the GPU-stall auto-fallback. Only ?webgl=force clears the marker at init. - The marker is instead retired on a real OFF->ON toggle flip detected at save time (mirrors the _prevGestureEnabled pattern in settings-ui.js). - webglRendererEnabled added to the displayKeys per-device set in loadAppSettingsFromServer (renderer choice is device/GPU-specific; syncing would leak mobile's hidden-checkbox false onto desktop). - Tests: stored true + sticky marker -> still skips WebGL; OFF->ON save clears the marker and keeps the key off the wire; default-checked save leaves the marker alone; ?webgl=force / ?nowebgl behavior unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -272,7 +272,9 @@ Object.assign(CodemanApp.prototype, {
|
||||
stickyDisabled: _stickyDisabled,
|
||||
userPrefEnabled: _webglPref,
|
||||
});
|
||||
// Explicit opt-in (toggle ON) or ?webgl=force retires a stale auto-fallback marker.
|
||||
// Only ?webgl=force retires the auto-fallback marker at init — a stored
|
||||
// toggle ON is incidental (checkbox defaults checked) and must not defeat
|
||||
// the sticky safety net. An OFF→ON flip clears it in saveAppSettings().
|
||||
if (_clearWebglSticky) {
|
||||
try { localStorage.removeItem('codeman-webgl-disabled'); } catch {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user