fix(picker): een lang typelabel breekt niet meer midden in het woord #418

Merged
brenno merged 2 commits from fix/picker-label-afbreken into main 2026-07-20 15:53:12 +00:00
Owner

Twee commits die in de hoofdwerkmap waren blijven liggen en nooit op main
terechtkwamen — de lokale main daar bleek een eigen lijn te zijn, dus ze zijn
via cherry-pick op origin/main gezet.

Ze horen bij elkaar: de tweede repareert de eerste.

1. Een lang typelabel breekt niet meer midden in het woord.
"Aanvalsoppervlak" stond als "Aanvalsopperv / lak" op de kaart, en dat leest als
een typefout in plaats van als een regelafbreking. Het Nederlands inkorten helpt
niet: de vertalingen zijn langer (Superficie di attacco, Атакуема
повърхност
), dus de kaart moet meegeven en niet het woord. Afbreken op spaties
blijft ongemoeid — een tweewoordig label breekt gewoon in tweeën. Alleen wanneer
één woord breder is dan de kaart zakt het hele label in stapjes van een halve
punt, tot een bodem van 8pt.

2. Het label wordt gemeten in het lettertype waarin het getekend wordt.
De eerste poging werkte niet: de meting gebruikte een kale TextStyle en dus het
standaardlettertype van het framework, terwijl de kaart het lettertype van het
thema tekent — dat is breder. De meting zei dat het woord paste en het oog zei
van niet. Er wordt nu gemeten tegen de overgeërfde DefaultTextStyle, dus tegen
precies de stijl waarin de Text uiteindelijk verschijnt.

Toetsing

make check groen: 4187 tests, dekking 79,5%. CI blijft pending — er is geen
runner.

Kanttekening: sinds PR #417 staat "Aanvalsoppervlak" onder de
informatieveiligheidsmodule, dus het oorspronkelijke symptoom is alleen zichtbaar
met die uitbreiding aan. De fix zelf is algemeen en geldt voor elk te lang label,
in elke taal.

🤖 Generated with Claude Code

Twee commits die in de hoofdwerkmap waren blijven liggen en nooit op main terechtkwamen — de lokale `main` daar bleek een eigen lijn te zijn, dus ze zijn via cherry-pick op `origin/main` gezet. Ze horen bij elkaar: de tweede repareert de eerste. **1. Een lang typelabel breekt niet meer midden in het woord.** "Aanvalsoppervlak" stond als "Aanvalsopperv / lak" op de kaart, en dat leest als een typefout in plaats van als een regelafbreking. Het Nederlands inkorten helpt niet: de vertalingen zijn langer (*Superficie di attacco*, *Атакуема повърхност*), dus de kaart moet meegeven en niet het woord. Afbreken op spaties blijft ongemoeid — een tweewoordig label breekt gewoon in tweeën. Alleen wanneer één woord breder is dan de kaart zakt het hele label in stapjes van een halve punt, tot een bodem van 8pt. **2. Het label wordt gemeten in het lettertype waarin het getekend wordt.** De eerste poging werkte niet: de meting gebruikte een kale `TextStyle` en dus het standaardlettertype van het framework, terwijl de kaart het lettertype van het thema tekent — dat is breder. De meting zei dat het woord paste en het oog zei van niet. Er wordt nu gemeten tegen de overgeërfde `DefaultTextStyle`, dus tegen precies de stijl waarin de `Text` uiteindelijk verschijnt. ## Toetsing `make check` groen: 4187 tests, dekking 79,5%. CI blijft pending — er is geen runner. Kanttekening: sinds PR #417 staat "Aanvalsoppervlak" onder de informatieveiligheidsmodule, dus het oorspronkelijke symptoom is alleen zichtbaar met die uitbreiding aan. De fix zelf is algemeen en geldt voor elk te lang label, in elke taal. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
"Aanvalsoppervlak" stond als "Aanvalsopperv / lak" op de kaart, en dat leest
als een typefout in plaats van als een regelafbreking. Het Nederlands inkorten
helpt niet: de vertalingen zijn langer (Superficie di attacco, Атакуема
повърхност), dus de kaart moet meegeven en niet het woord.

Afbreken op spaties blijft ongemoeid — een tweewoordig label breekt gewoon in
tweeën. Alleen wanneer één woord breder is dan de kaart zakt het hele label in
stapjes van een halve punt, tot een bodem van 8pt waaronder het onleesbaar
wordt.

De test meet met breedtes die hij zelf uit de meting afleidt, niet met vaste
pixelwaarden: widgettests draaien in Ahem, waar elk teken een volle em breed
is, dus vaste getallen zouden alleen daar kloppen en nergens anders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix(picker): meet het label in het lettertype waarin het getekend wordt
Some checks failed
CI / Gate (Linux) · Format · Analyze · Coverage (push) Has been cancelled
CI / Gate (Linux) · Format · Analyze · Coverage (pull_request) Has been cancelled
CI / Test (macos-latest) (pull_request) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Web hardening (push) Has been cancelled
CI / Docs links (push) Has been cancelled
CI / Supply-chain (Trivy · advisory) (push) Has been cancelled
CI / Test (windows-latest) (pull_request) Has been cancelled
CI / Web hardening (pull_request) Has been cancelled
CI / Docs links (pull_request) Has been cancelled
CI / Supply-chain (Trivy · advisory) (pull_request) Has been cancelled
3ec66ec1ab
Mijn vorige poging werkte niet. De meting gebruikte een kale TextStyle en dus
het standaardlettertype van het framework, terwijl de kaart het lettertype van
het thema tekent — dat is breder. De meting zei dat het woord paste en het oog
zei van niet: "Aanvalsoppervlak" brak nog steeds af, alleen één letter later.

Er wordt nu gemeten tegen de overgeërfde DefaultTextStyle, dus tegen precies
de stijl waarin de Text uiteindelijk verschijnt.

De test die dit had moeten vangen bestond niet: alle zes waren groen terwijl
de bug op het scherm stond. De nieuwe test meet met een bewust bredere stijl
(letterSpacing) en eist dat het antwoord daardoor verandert — als de meetstijl
genegeerd wordt, blijft die gelijk en wordt de test rood.

Geverifieerd door de app te bouwen en te kijken, niet alleen door de suite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit f4240b180d into main 2026-07-20 15:53:12 +00:00
Sign in to join this conversation.
No description provided.