Repository navigation
Commit 8c065fb
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
- internal
- guard
- testdata/screens
- gui/parts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
137 | 145 | | |
138 | 146 | | |
139 | 147 | | |
| |||
0 commit comments