Explain the eyedropper for object variables (#276)

Behaviors gets a point after picking a target from the dropdown. Keyboard lists Enter and Esc while the eyedropper runs. Development counts 1596 e2e checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-09-30 06:31:48 +02:00
1 parent 3a46facd7f
commit 8460ac614c
3 files changed
+15 -1

No files matched your search

+12
@@ -66,6 +66,18 @@ playing use the same two words.
object itself included. The pick is stored as the object's id, `{"$object": "<id>"}`, and a run object itself included. The pick is stored as the object's id, `{"$object": "<id>"}`, and a run
reads the object itself. On the behavior asset there is no scene, so the row says `(null)` and reads the object itself. On the behavior asset there is no scene, so the row says `(null)` and
offers nothing; the default is always no object. offers nothing; the default is always no object.
- **The eyedropper** beside the dropdown picks in the view instead (#276). It brings up the scene
view, or the tab of the container the object sits in, with a bar over it
(`Target for <object> · <field>: <candidate> [Take] [Cancel]`) and a crosshair. A click only
makes a candidate, outlined in its own colour, and the object with the variable stays selected.
It follows the selection rule: a click on the candidate passes on to the object behind it,
round to the front again, and a click elsewhere takes the one in front there. Empty space keeps
the candidate, and so does a spot with nothing the dropdown offers, with a notice why.
**Enter** or *Take* writes it as one undo step (none when it is the target already).
**Escape**, *Cancel*, a right-click in the view or a second press of the eyedropper leave the
place as it was. Started from a Variables tab, it goes back there afterwards. Another tab,
another selection, undo, redo or Play end it without writing. While it runs the view does
nothing else (no dragging, marquee, brush, handles or menu); panning and zooming still work.
- **Inside a container** an object only gets the objects of the same container to choose from, - **Inside a container** an object only gets the objects of the same container to choose from,
named by their template id. Every placement of the container then reaches its own copy. named by their template id. Every placement of the container then reaches its own copy.
- **The reference follows the object:** removing it empties the reference in the same undo step, - **The reference follows the object:** removing it empties the reference in the same undo step,
+1 -1
@@ -18,7 +18,7 @@ php tests/php/accounts.test.php # the API's accoun
# has and the web server's container has not (SKIP there) # has and the web server's container has not (SKIP there)
php tests/php/snapshots.test.php # the snapshot store (#231), the same way php tests/php/snapshots.test.php # the snapshot store (#231), the same way
php tests/php/releases.test.php # the release store (#266), the same way php tests/php/releases.test.php # the release store (#266), the same way
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1591 editor checks, screenshots in /tmp/gm-e2e-*.png node tools/seed-e2e.mjs && node tools/e2e.mjs # 1596 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result ./e2e.sh status # live progress, or the last run's result
+2
@@ -2,6 +2,8 @@
`Backspace` remove the selection (objects, nodes, frames, the shapes of a vector art, keys or a row of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create `Backspace` remove the selection (objects, nodes, frames, the shapes of a vector art, keys or a row of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create
container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop · container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop ·
`Esc` on a question does what its Cancel does · `Esc` on a question does what its Cancel does ·
while the eyedropper of an object variable picks, `Enter` takes the candidate and `Esc` leaves
without it, before anything else those keys do ([Behaviors](Behaviors)) ·
`Ctrl+C` copy the selected objects or graph nodes, `Ctrl+V` paste them `Ctrl+C` copy the selected objects or graph nodes, `Ctrl+V` paste them
under the pointer ([Scene editing](Scene-editing), [Behaviors](Behaviors)) · `Ctrl+V` import an image from under the pointer ([Scene editing](Scene-editing), [Behaviors](Behaviors)) · `Ctrl+V` import an image from
the clipboard as a texture when nothing copied fits the tab (ignored while a text field has focus) · Animation tab: `Ctrl+C` copy the clipboard as a texture when nothing copied fits the tab (ignored while a text field has focus) · Animation tab: `Ctrl+C` copy