Pushed into the wire-coloured half, the centre filled almost all of it: that
half is only KNOB_RADIUS wide and the centre is KNOB_CORE_RADIUS, so at the
real 8px knob size the wire colour was reduced to a sliver and the marker read
as plain grey. Centred, both halves keep enough colour to tell apart.
Found on a slot carrying two links on its own sheet plus one leaving it, which
is the only arrangement that produces this knob and did not occur in testSax
until now.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Layout rules for tidy and for dragging:
- Boxes snap to whole meta steps live while dragged, not only on release.
- The left-most column and top row clear the canvas edge by at least 30px,
and neighbours by at least 30px, each rounded up to the next step.
- Box widths round up to the grid so a right edge lands on a grid line.
- Column gaps widen only where wires need lanes, so most stay at exactly 30px.
- A sheet too wide for meta's 0..255 range is laid out at 2, then 3, then 4
grid squares per step. The multiplier is derived from the sheet's contents,
so painting and tidying agree on it without recording anything in the file.
The grid size in Preferences is untouched.
Wire routing:
- No wire may pass under a component. A link with no clear route is shown as
knobs on both slots instead of a line hidden behind a box.
- Vertical runs hug a box within 15px, never closer than 10px, and two runs
sharing a gap stand 10px apart.
- Horizontal runs of different links stay 5px apart. Runs from one output pin
may share, since a fan-out is one signal.
- Straight routes claim their rows first, as their segments are pinned to
their slots and cannot move later.
Knobs:
- Wire colour with a small white centre when the far end is on this sheet,
grey when it is on another, half and half when a slot carries both.
- Selectable and deletable like a wire, and raised above the boxes so a click
reaches them.
- Selecting a same-sheet pair draws a red dashed line between the two knobs.
Also:
- get_box_bounds returns the rectangle actually drawn rather than canvas.bbox,
which was inflated by the outline stroke and by selection.
- Preferences offers to round the box width to a multiple of the grid.
- The tidy coordinate-limit warning said to lower the grid size; raising it is
what helps, since the reach is 255 * grid size.
- Tidy Layout moves from its own menu into Edit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Implement full link workflow between component slots on the wiresheet:
- Link Mark / Link From / Link To context menu items for creating links
- Link dialog with slot type validation and source/target swap button
- Selectable link wires (click to highlight in red) with right-click delete
- Undo/redo support for both add and delete link operations
- Component deletion already cascades to remove related links
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>