Commit message · tychovrahefix(core): render a full-turn sector as a full circle
`fill_sector` normalizes both endpoints into <0..360), which maps a span
of exactly one turn onto a single value. The octant loop reads that as a
zero-width sector and skips all eight octants, and the centre pixel is
skipped as well, so the call draws nothing at all where a full circle is
meant.
Detect the span before normalizing and pin it to the full range. Only a
forward span counts, so the `start > end` wrap-around convention and every
partial sector keep their existing behaviour. Normalization still runs on
both endpoints first, so its bound assert is never bypassed -- an infinite
endpoint traps rather than silently becoming a circle.
Verified that (0,360), (0,720) and (-360,0) now fill all eight octants
plus the centre, while (0,90), (90,180), (0,359.64), (300,60), (36,108)
and the empty (0,0) are unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
[no changelog]
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queuedaccess control
AI analysis · Informational 19/100This is a UI graphics bug fix in the Trezor hardware wallet firmware. When drawing a circular progress indicator or pie-chart-like shape spanning a full 360 degrees, the code mistakenly treated it as an empty slice and drew nothing. The patch detects a full-circle span before normalizing the angles and forces it to draw all eight segments plus the center pixel. There is no direct security vulnerability here; it is a rendering correctness fix.