Repository navigation
fix(canvas): draw the WCS marker as arrows above the extent frame - #628
Conversation
The green work-origin marker was previously drawn below the axis extent frame and nogo zones with the same hairline style, so it blended into the red frame and became invisible whenever the work origin sat on the frame corner. The marker axes are now arrows: the shafts keep their device-space hairline width, and the arrowheads use a fixed device-space size that no longer scales with zoom. The green is fully opaque, and the z-order sort now places the marker above the extent frame and nogo zones while keeping it below stock, layers, and the laser dot. Regenerate the main-standard and projector-mode screenshots and reword the projector docs (and translations) from crosshair to arrows. Fixes #625
🤖 Estimated LLM implementation costReplayed each of the 1 commits in this pull request and counted the code lines each commit added or rewrote:
Added lines by language: Python 41, Markdown 12 Full estimate
Cost model: ≈10 tokens per code line at $15/Mtok output and $3/Mtok input (assuming heavy prompt caching); input ≈ 15× output for conversation replay; a review round ≈ 42,000 tokens; a failed CI run ≈ 21,000 tokens; file reads capped at 20 kB each. Active window from first commit to merge: <1 day.
|
Problem
The green work-origin (WCS) marker uses the same hairline style as the red axis extent frame. When the work origin sits exactly on the frame corner — e.g. origin top-right at 0,0 — the two overlap and the marker visually disappears (issue #625).
Two stacking problems cause this:
update_from_docpinnedWorkOriginElementat the very bottom of the canvas stack (below the extent frame and nogo zones), so the red frame was always drawn on top of the marker.Changes
WorkSurface.__init__matches.main:standardandaddon:projector-modescreenshots, which showed the old blended marker.Testing
pixi run uitest tests/ui_gtk/canvas2d/: 58 passed (including the 5test_wcs_visual_marker_locationscenarios and the marker visibility render tests)pixi run lint: cleanFixes #625