A hit test asks the same area as the pointer, and the + menu is scrolled by the scaffold

Behaviors: "on a node" for an edge drop is the node's pointer area, which reaches a port radius past
its edge, so a drop on an input port at x = 0 is never a drop on empty canvas. Development: steps
pick an asset type with `pickAssetType()`, the way they open a tab with `openTab()`.
admin committed 2026-09-14 19:16:28 +02:00
1 parent 6ed46a9920
commit d73ce57a7c
2 files changed
+10 -1

No files matched your search

+4 -1
@@ -224,7 +224,10 @@ shown on the node and editable in the inspector.
types this edge could reach at all, and the picked node arrives already wired; node and link go
in as **one** undo step (`core/graph/dropTarget.ts` decides all of this, the canvas only draws
it). The dangling edge stays on screen while that palette is up, so the connection being made is
still visible while its node is chosen.
still visible while its node is chosen. **"On a node" means the area the node's pointer events
use** (`NodeView.containsLocal`), which reaches a port radius past the left and right edge: an
input port sits at exactly the node's edge, so a drop that hits the port hits the node, and never
the empty canvas a hair beside it.
- **A link can be hidden**, so a connection across the whole graph does not have to be drawn as a
line across the whole graph. Right-click a port → *Hide link*; the curve is replaced by a short
stub at each end, ending in a dot captioned with the node at the *other* end. The connection is
+6
@@ -73,6 +73,12 @@ not by clicking its name: since the tenth tab the row hides some of them at the
and the helper goes through the `»` menu when it has to. Clicking the label directly took the
whole suite down the day the Particles tab was added.
The same holds for the **`+` menu**: it has one entry per asset type and scrolls past 320 px, so the
last of them sit under the mask, where `locate` still finds an entry but a click on it lands on
nothing. A step picks a type with `pickAssetType(t, 'Font')` from the same file, which scrolls it in
first. The fourteenth type (Variables) pushed `Font` under that edge and took the font step down,
because only the particles step had carried the workaround of its own.
**A check that demands an exact number must be handed the number, not something it can be derived
from.** The particle preview used to hold second 0.5 by computing the clock reading that *would* mean
0.5 since the field started; the round trip through floating point misses by the last bit about one