From 32160e95bab18cf32397bcd1b578d7983a674cf7 Mon Sep 17 00:00:00 2001 From: MelekTaus Date: Sun, 4 Oct 2026 00:11:53 +0200 Subject: [PATCH] Show where an inspector row can be dragged - Behaviors: under Reordering, the dots on a mark that drags, the lit dots and washed block under the pointer, and the other marks passing the pointer while a block is carried. - Architecture: blockDrag names the Grip widget. - Development: the e2e sum is 1740. Co-Authored-By: Claude Opus 5.5 --- Architecture.md | 2 +- Behaviors.md | 9 +++++++-- Development.md | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Architecture.md b/Architecture.md index 96cdc3c..f91af08 100644 --- a/Architecture.md +++ b/Architecture.md @@ -169,7 +169,7 @@ src/runtime/physics/ engine (loads Rapier once, reports its state, converts be src/ui/ widget toolkit (generic, knows nothing about assets); fonts (the faces the editor ships: Source Sans 3 in 400, 500 and 600, Source Code Pro 400, Latin only, #202/#214/#273), icons + Icon (the menu's tick boxes and current-entry dot as SVG files, and a widget that shows one file - on its own: a symbol the Latin subset lacks is never written as a character, #214); SortableList + sortable (the layer list of every editor that has one: rows dragged into order, eye, duplicate, cross, rename in place; the index arithmetic of a list shown upside down, of a drop in the tile strip and of blocks of rows of any height, kept apart so it is measured without a canvas); blockDrag (`sortBlocks`: the inspector's own rows dragged into order by a grip, a block being every row it covers, #310) + on its own: a symbol the Latin subset lacks is never written as a character, #214); SortableList + sortable (the layer list of every editor that has one: rows dragged into order, eye, duplicate, cross, rename in place; the index arithmetic of a list shown upside down, of a drop in the tile strip and of blocks of rows of any height, kept apart so it is measured without a canvas); blockDrag (`sortBlocks`: the inspector's own rows dragged into order by a `Grip` (the row's mark, wrapped: dots once it drags, lit under the pointer while the block is washed), a block being every row it covers, #310) src/viewport/ WorldViewport (the drawing of a world or a holder, the base of every view; it draws from a `ViewSource` — the project and word of a change — so a released game draws without the editor, #266; a view through a camera keeps only what that camera `Sees` and lays one diff --git a/Behaviors.md b/Behaviors.md index fdae8e2..613b319 100644 --- a/Behaviors.md +++ b/Behaviors.md @@ -183,10 +183,15 @@ the inspector). its indent takes, and names are cut with `…` rather than pushing their value out of line. - **Reordering** (#310): variables, the fields of a struct at any depth, the items of a list and the declared ports of a Start, End, `Pack`/`Expand` or shader function are **dragged by the mark in - front of their row** — the kind mark, for a list item its number. A press that moves less than + front of their row** — the kind mark, for a list item its number. Such a mark carries six faint + dots at its left edge, so a row that cannot be dragged (a placed object's variable, the fields of + a typed struct) is told apart at a glance. With the pointer on the mark the dots light up and the + block that would go with it is washed in the accent colour. A press that moves less than 4 px stays a click, so the kind picker of a list item still opens. A block moves with all of its rows (a struct with its fields, an item with its nested list) and is dimmed while it is carried; - an accent line shows where it lands, and at the top or bottom edge the panel scrolls along. It + an accent line shows where it lands, and at the top or bottom edge the panel scrolls along. The + other marks do not answer the pointer while a block is carried, and every mark shows the + grabbing hand until it is dropped. It moves among its siblings only: a field stays in its struct, an item in its list. Every move is one undo step. Values and edges hang on names, so only the order changes: of the rows, of the fields of `Pack`/`Expand`, of the ports on every node running the behavior. A list's order is its diff --git a/Development.md b/Development.md index e0ecd57..7f99a8d 100644 --- a/Development.md +++ b/Development.md @@ -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) 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 -node tools/seed-e2e.mjs && node tools/e2e.mjs # 1739 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1740 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 ./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh status # live progress, or the last run's result