fix(pdf-editor): a page of solid text had nowhere to start an area selection

A band starts from the space between things, so that a drag across words
still selects words to copy. On a page that is wall-to-wall text there is
no such space, and the gesture simply did nothing — which is how it failed
on a real document at 276% zoom, where every candidate starting point had
a line of text under it.

Alt-drag starts a band anywhere, text or not. The select hint says so.
This commit is contained in:
Local Dev 2026-09-27 18:34:07 +02:00
parent cdad2907cb
commit 333f7988a8
3 changed files with 6 additions and 4 deletions

View file

@ -1,7 +1,7 @@
{
"id": "pdf-editor",
"name": "PDF Editor",
"version": "0.8.0",
"version": "0.8.1",
"description": "Open a PDF in a full tab: read it, mark it up with highlight, underline, strike-through, pen, shapes, arrows, text and a drawn signature, then move, resize, restyle or delete anything you placed. Reorder, rotate or drop pages, fill in form fields, redact for real, and save a new copy. Build a PDF from pictures, one page each, or join several PDFs into one. Marks are written into the saved file as real PDF content. The original is never touched.",
"author": "Silent Mode",
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYgMmg4bDYgNnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJ6IiBmaWxsPSIjZGMyNjI2Ii8+PHBhdGggZD0iTTE0IDJ2Nmg2eiIgZmlsbD0iIzk5MWIxYiIvPjx0ZXh0IHg9IjEyIiB5PSIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iNS41IiBmb250LXdlaWdodD0iODAwIiBmaWxsPSIjZmZmIj5QREY8L3RleHQ+PC9zdmc+",

View file

@ -507,7 +507,7 @@ $("redact-ok").addEventListener("click", () => closeModal(true));
$("redact-cancel").addEventListener("click", () => closeModal(null));
const TOOL_HINTS = {
select: "Click a mark, or drag an area around several. Shift-click adds one, Ctrl+A takes the page.",
select: "Click a mark, or drag an area around several — Alt-drag to start one on top of text. Shift-click adds one, Ctrl+A takes the page.",
highlight: "Drag across text to highlight it.",
underline: "Drag across text to underline it.",
strikeout: "Drag across text to strike it through.",

View file

@ -313,8 +313,10 @@ export class Tools {
if (e.target?.closest?.(".annotationLayer")) return;
// ...or on the document's own words, where a drag means selecting
// them to copy. A band is started from the space between things,
// which is where a hand reaches for one anyway.
if (span) return;
// which is where a hand reaches for one anyway — except on a page
// that is wall-to-wall text and has no such space, which is what
// Alt is for.
if (span && !e.altKey) return;
this.drag = { kind: "marquee", uid: hit.uid, x0: x, y0: y, x, y,
cx: e.clientX, cy: e.clientY, moved: false };
e.preventDefault();