Skip to content

Give each favourites gesture one meaning - #87

Merged
PatrickSt1991 merged 1 commit into
mainfrom
fix/one-meaning-per-gesture
Sep 6, 2026
Merged

PatrickSt1991 merged 1 commit into
mainfrom
fix/one-meaning-per-gesture

Conversation

@PatrickSt1991

Copy link
Copy Markdown
Contributor

Third report in one afternoon:

app allows two duplicates url to be added when used both 8 button & keep page menu together, if we point at the tile added using kept menu and press 8 it duplicates that site.

Pointing at a tile and pressing 8 added a second copy of it — in the build shipped an hour earlier to let him remove tiles by pointing at them.

The fault was never the matching rule

Three reports, three fixes, each one a better rule for comparing addresses: fold the trailing slash, fold the www., name the tile by its address. Each fix was correct and each bought exactly one more shape of the same report. That is the signal that the rule was not the problem.

8 meant two opposite things depending on state the screen did not show.

  • On a page: kept or removed depending on an address the tile never displayed.
  • On the start screen: kept or removed depending on which of two grids the pointer was over — and those grids are the same tiles, drawn the same way, one above the other, very often holding the same page. Point at something you already kept, press the key that removes things, get another copy.

Separated by meaning instead of by state

Gesture Means Never
8 on a page keep this page, or drop it —
8 on a tile get rid of this tile adds
Keep an address… keep this address removes, or adds a second copy

8 stays a toggle on a page because you are looking at the thing itself, so both outcomes are legible before you press. Nowhere else is that true. And a menu row with the word keep in it must not sometimes delete — that is the reading its name promises and the one it did not have.

There is now no sequence of presses that produces a second tile for something already on the screen.

One supporting detail: a tile carries which grid it is in (data-kind, written by HomePage, returned by linkAt in front of the address). The same page is very often a favourite and a recent visit, and removing it from the list the pointer was not on is indistinguishable, from a sofa, from a key that did nothing. 8 on a Recent tile forgets that visit — the same gesture, the same meaning.

Checks

  • tools/startpage/run.sh — holds the property, not a list of cases: keeping twice adds nothing, keeping another spelling adds nothing, 8 on a tile only ever removes, a page in both grids loses only the one pointed at, and 8 on the page still finds what Keep an address… put there. Green.
  • linkAt verified in desktop chromium with the same URL in both grids: returns fav …/reel, fav …/reels, recent …/reel, and "" off a tile.
  • tools/cdpharness/run.sh, tools/siterules/run.sh green; ./build.sh all five packages, 0 warnings.

INTERNALS gains One gesture, one meaning, which is the part worth keeping: when three fixes in a row each buy one more shape of the same report, the rule being fixed is not the fault.

Issue 80's third report in one afternoon: "app allows two duplicates url to be
added when used both 8 button & keep page menu together, if we point at the tile
added using kept menu and press 8 it duplicates that site."

Pointing at a tile and pressing 8 added a second copy of it — in the build
shipped an hour earlier to let him remove tiles by pointing at them. Three
reports, three fixes, each one a better rule for matching addresses. The matching
rule was never the fault.

The fault is that 8 meant two opposite things depending on state the screen did
not show. On a page it kept or removed depending on an address the tile never
displayed. On the start screen it kept or removed depending on which of two grids
the pointer was over — and those grids are the same tiles, drawn the same way,
one above the other, very often holding the same page. Point at something already
kept, press the key that removes things, get another copy. Every fix that
preserved the toggle bought one more shape of the same report.

So the gestures are separated by meaning rather than by state:

  8 on a page        keep this page, or drop it
  8 on a tile        get rid of this tile — never adds
  Keep an address... keep this address — never removes, never a second copy

8 stays a toggle on a page because you are looking at the thing itself, so both
outcomes are legible before the press. Nowhere else is that true. And a menu row
with the word keep in it must not sometimes delete.

A tile now carries which grid it is in (data-kind, written by HomePage and
returned by linkAt in front of the address), because the same page is very often
a favourite and a recent visit both, and removing it from the list the pointer
was not on looks exactly like a key that did nothing. 8 on a recent tile forgets
that visit.

startpage holds the property rather than the cases: no sequence of presses makes
a second tile for something already on the screen. linkAt verified in desktop
chromium against both grids carrying the same URL; cdpharness re-run.
@PatrickSt1991
PatrickSt1991 merged commit c11d5fe into main Sep 6, 2026
7 checks passed
@PatrickSt1991
PatrickSt1991 deleted the fix/one-meaning-per-gesture branch September 6, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant