Skip to content

v3.8.1 — Content that had nowhere to go

Choose a tag to compare

@cerede2000 cerede2000 released this 18 Sep 07:29
· 95 commits to main since this release

A file longer than the window could not be scrolled in the editor. That was
issue #10, reported
against Firefox — and measuring it in both engines said Firefox was not the
fault. It was broken everywhere, and looking for the shape of it rather than the
case found three more.

What was wrong

The editor. CodeMirror grows with its document unless it is told to fill its
host, so a 900-line file drew an editor 20,000 px tall inside a page whose root
clips at the window. There was no viewport anywhere, and the wheel moved nothing
in any browser. What differed between engines was only what the keyboard did:
moving the caret scrolls a clipping container by as much as each one chooses —
57 px a press in Chromium, 9,747 in Firefox — which is what made it read as a
browser quirk rather than a layout fault.

The search results showed ten matches of a hundred. Every other list in the
application scrolls its own list: the trash, both share views, the folder
listing. This one alone drew all hundred into a box that clips, with no
scrollbar anywhere.

The dashboard clipped its last volumes — 460 px of 1,120 unreachable at
thirty-one volumes, which is a number of mounts an ordinary NAS has.

The sidebar could only be scrolled by a pointer hovering it, because that is
how its scrollbar was hidden: overflow-y: hidden until :hover. On a touch
screen nothing hovers, so 897 px of it had no way in at all. The scrollbar is
still hidden until hover; the scrolling is not.

What is left behind

Not four fixes but the search that found three of them. Content taller than its
box, with nothing scrollable between it and the first ancestor that clips: three
tests now fill the installation with more than fits — thirty volumes, three
hundred files, a nine-hundred-line file, a hundred search results — and walk the
screens, the panels and dialogs that open on top of them, and all of it again at
a phone's size. Anything hidden that way fails the build, naming the screen, the
element and the pixels lost.

Four more tests cover the editor's own contract, and they run in Firefox as well
as Chromium — this was reported against Firefox, and only a second engine could
say whether that mattered. Every one of them fails on the old code.

Upgrading

Nothing to do: no schema change, no configuration change.

ghcr.io/cerede2000/explorer:3.8.1
ghcr.io/cerede2000/explorer:3.8.1-lean

The Linux archive that installs without Docker is attached below, for x86_64 and
arm64 — sudo nextexplorer-upgrade takes it from here.