From afa0e6e7402ba19688348ab1c41b30bdf14d2d49 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 29 Oct 2026 17:20:28 +0100 Subject: docs: the wallpaper engine and the burn The appearance README gains the burn (the cover, the covered() handshake and why, the shader cache trap) and the engine (sources, shuffle, light run, homes, the draft page, where its state lives and what starts it). The spec records what changed while building it: Prefs instead of list files, a page of its own, folder sources, the header buttons, the cover handshake. AGENTS.md gains the Field.edited trap, which applies to every page with a field and a button: a click does not end editing, so the value a button acts on must be read on every change. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'AGENTS.md') diff --git a/AGENTS.md b/AGENTS.md index b7e617e..ebe8313 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -253,6 +253,12 @@ changing that component. The ones that generalise: to false on it, unlike a Controls `TextField`, so every hand-rolled field carries `activeFocusOnTab: true` or Tab skips it. A new one needs it too. Multi-line `TextEdit`s are left out on purpose. +- **`Field.edited` fires on `editingFinished`, and a click does not end + editing.** The hand-rolled `Button`, `Tab` and `Toggle` are `MouseArea`s + that take no focus, so typing a value and clicking one of them leaves the + value uncommitted: the wallpaper engine was started at 30 minutes with 1 + typed in the field. A value a button acts on is read on every change + (`onValueChanged`), as `WallEngineTab` does. - **A QML method cannot be named `escape`.** It shadows the global JS function, and the file fails with `Illegal method name` at load, which a hot reload reports as the whole island being unavailable. The island's -- cgit v1.2.3