Concepts: the editor remembers where each divider was dragged

Concepts names the dividers that are kept and says the sizes belong to the browser, not the project. Architecture names editor/panelSizes.ts. Development counts 1692 editor checks.
admin committed 2026-10-02 23:24:30 +02:00
1 parent 953daa5a12
commit c657f2a9a2
3 files changed
+13 -3

No files matched your search

+5 -2
@@ -23,8 +23,11 @@
header down to the next one (`hiddenBySections`, `sectionOffsets` are the rules, as pure header down to the next one (`hiddenBySections`, `sectionOffsets` are the rules, as pure
functions). A `SortableList` with a title opens a group the same way and draws its band past its functions). A `SortableList` with a title opens a group the same way and draws its band past its
own edges. The toolkit only folds; which groups are folded is kept by the editor own edges. The toolkit only folds; which groups are folded is kept by the editor
(`editor/sectionFolds.ts`, one entry in `localStorage`). Every title of the inspector goes through (`editor/sectionFolds.ts`, one entry in `localStorage`), and so is where each divider was dragged
`addTitle` or `sectionHeader` in `inspector/host.ts`, so a new section gets the band by itself. to (`editor/panelSizes.ts`, a second entry: a name per divider and its width, height or share,
read once when the panel is built and held to the bounds the divider keeps). Every title of the
inspector goes through `addTitle` or `sectionHeader` in `inspector/host.ts`, so a new section
gets the band by itself.
**Text and boxes sit on device pixels** (`ui/pixelGrid.ts`). The layout counts in whole CSS **Text and boxes sit on device pixels** (`ui/pixelGrid.ts`). The layout counts in whole CSS
pixels, and on a screen scaled to 125 % or 150 % most of those fall between two device pixels: pixels, and on a screen scaled to 125 % or 150 % most of those fall between two device pixels:
the GPU averages both, text goes soft and a 1 px line becomes a pixel and a half of mixed colour. the GPU averages both, text goes soft and a 1 px line becomes a pixel and a half of mixed colour.
+7
@@ -242,6 +242,13 @@ The asset panel and **Scene objects** share the left column; the divider between
the height from one to the other, and dragged all the way either keeps its header. The split is a the height from one to the other, and dragged all the way either keeps its header. The split is a
share of the column, so a taller or shorter window keeps it. share of the column, so a taller or shorter window keeps it.
**Panel sizes are remembered.** Every divider stays where it was dragged, after a reload too: the
ones left and right of the centre column, the one above the console, the one in the left column,
the one beside the tilemap panel, the one beside the preview of the Shader, Particles and Pixel
art tabs (each tab its own), and the one in the user management. The sizes are kept in the
browser, like the folded groups, not in the project: they hold for every project opened in this
browser, and another browser starts with the sizes the editor comes with.
**The tab row.** A tab is an **open document**, as in an IDE (#171). **Scene** and **Game** are **The tab row.** A tab is an **open document**, as in an IDE (#171). **Scene** and **Game** are
fixed and cannot be closed; a plugin's own tab follows them for as long as the plugin is on. The fixed and cannot be closed; a plugin's own tab follows them for as long as the plugin is on. The
plugins themselves, and for an administrator the accounts, are in a tab that opens from the menu plugins themselves, and for an administrator the accounts, are in a tab that opens from the menu
+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 # 1691 editor checks, screenshots in /tmp/gm-e2e-*.png node tools/seed-e2e.mjs && node tools/e2e.mjs # 1692 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