A search that ignores what a thing is called is no search, so the name wins (#43)
game-maker / suite (push) Failing after 10m23s
game-maker / suite (push) Failing after 10m23s
Typing "variable" into the node palette landed on `Run behavior`, because the filter weighed label, type and description alike and then sorted by category. `searchRank` in `src/ui/search.ts` now ranks a match: exact label or type, then prefix, then label, then type, and only last a hit that lives in the description alone. Category and alphabet order within a rank. The searchable `Menu` uses the same function, so searching means the same thing everywhere. The `+` menu grew to fifteen entries in declaration order. It is built in two alphabetical groups now -- the types that go into a scene, then the ones that stay in the library -- with a separator between them, the split `isPlaceableType` already draws. `ASSET_TYPES` itself stays untouched: it is also the serialisation and check order. A search flattens the groups and drops the lines. Popups were capped at fixed heights (320 menu, 260 palette, 340 pickers) while the canvas had room to spare. `Popup.roomFor()` measures its own chrome and takes the window height minus a tenth at each end. Placement clamps asymmetrically: the bottom margin is enforced, the top is only a budget, so a menu anchored near the top stays at its button instead of being pushed off it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5671a38044
commit
3b039384c4
20 files changed
+570
-55
No files matched your search
@@ -132,10 +132,11 @@ export async function openTab(t, tab) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Picks an asset type from the already-open `+` menu. The menu has one entry per type and scrolls
|
||||
* past 320 px, so the last of them sit under the mask: `locate` still finds them, but a click there
|
||||
* lands on nothing. The fourteenth type (`Variables`, #91) pushed `Font` under that edge and took
|
||||
* step 30 down with it, because only step 31 had scrolled first.
|
||||
* Picks an asset type from the already-open `+` menu. Since #43 the menu may grow to the height of
|
||||
* the canvas, so on this window every type is usually on screen at once; the scroll stays in as
|
||||
* insurance for a shorter window, where entries below the mask edge are still found by `locate`
|
||||
* but a click there lands on nothing. That is what the fourteenth type (`Variables`, #91) did to
|
||||
* `Font` and to step 30.
|
||||
*/
|
||||
export async function pickAssetType(t, label) {
|
||||
const box = await t.json('__gm.overlayRect()');
|
||||
|
||||
Reference in new issue
Block a user