Skip to content

Commit 8c065fb

Browse files
donislawdevclaude
andauthored
gui: a renderer redraws its pieces and never the widget, and the explanation sheet says when it changes (#106)
* gui: a renderer redraws its pieces and never the widget, and the explanation sheet says when it changes The explanation behind the (i) button did not open on the first hover of a fresh window, and did after hovering a tab word first. Measured with a copy of the window whose driver logged every refresh: canvas.Refresh(r.button) asked for the Button embedded inside DetailButton, while the tree and the driver's object-to-canvas cache hold the DetailButton - a different interface value, so no canvas was found, nothing was marked dirty and the box put on the sheet was never painted until something else repainted for its own reason. The test driver cannot see this: it answers CanvasForObject for any object and its canvas ignores Refresh. - parts: redraw(pieces...) - every renderer names the pieces it draws, seven renderers unified, no canvas.Refresh left in parts or window - parts: Tips.open and close refresh the sheet, which also fixes the keyboard path - Space on the focused button added a box nothing painted and removed one that stayed drawn - guard: canvastold_test.go reads both rules from the source, since nothing behavioural can; detailpopup_test.go hovers through the canvas on the visible screen and refuses a button drawn nowhere - screens: generate-hovered and generate-refused-setting regenerated - both had captured a stale icon raster, the painter behind the stored pictures keeping an image until the image itself is refreshed Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * guard: a renderer names every piece it changes, and a box is refreshed after its last change Two things an outside review of the pull request pointed at, both about the guard and neither about the window. The renderer rule counted the arguments of redraw and asked nothing of them, so a face setting four pieces and naming three passed. It now reads every field set on a piece and every piece shown, through the renderer's own methods, and requires each to be named - Show on a canvas primitive or a container sets Hidden and stops in the pinned toolkit, where Hide, Move and Resize repaint by themselves. Measured on the seven renderers: 21 pieces changed, all named, and dropping any one of them turns it red. The box rule accepted a refresh anywhere in the method, so a refresh standing before the change counted. It now takes the last change and the last refresh and requires that order. What it still cannot see is written at the top of the file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * changelog: the explanation opens on the first hover and from the keyboard The fix in this pull request is one a person sees, and every other change under Unreleased that a person sees has its entry - an outside review pointed at the missing one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent e625627 commit 8c065fb

13 files changed

Lines changed: 659 additions & 65 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,14 @@ because it turns other people's test suites red.
134134

135135
### Fixed
136136

137+
- **The explanation beside a field opens on the first hover, and opens and
138+
closes from the keyboard.** Pointing at the information mark in a fresh
139+
window showed nothing until something else on the screen happened to
140+
repaint, and Space on the mark with the keyboard drew nothing at all. The
141+
window's controls now tell the canvas about each piece they change, and the
142+
sheet the explanation is drawn on says so when a box is put on it or taken
143+
off.
144+
137145
- **A refused preset no longer carries the note of the preset before it.** A
138146
limit of 512 B was refused with "no limit was given" under it - a note left
139147
over from the last expansion that worked.

0 commit comments

Comments
 (0)