readest/apps/readest-app
Huang Xin a8d3411203
fix(reader): gate captured slide/curl turn on scrollLocked like push (#5000)
Instant Highlight engages after a 300ms still-hold on text and locks
scrolling (renderer.scrollLocked) so the finger extends the highlight
instead of turning the page. The push paginator honors that lock in its
native swipe, but slide and page curl run through the app-side captured
turn: applyPageTurnAttributes sets no-swipe, so the native swipe bows
out and the captured-turn touch interceptor drives the turn instead.
That interceptor started a page turn on any horizontal swipe without
checking the lock, so a hold-then-swipe paginated with the slide/curl
effect instead of extending the highlight.

Gate the interceptor on renderer.scrollLocked before it begins a drag,
mirroring the native swipe. Bump the foliate-js submodule
(readest/foliate-js#51) to expose scrollLocked via a getter (it was
write-only) and add a regression test.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 18:01:18 +02:00
..
.agents agent: support cross-agent workspace, now it should work with claude and codex (#4318) 2026-05-27 06:28:39 +02:00
.claude feat(sync): S3-compatible cloud sync provider (#4990) 2026-07-07 09:34:28 +02:00
bench fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
data/wordlens feat(wordlens): en-en glosses, styling, derivation lemmas, display-time cap (#4744) 2026-06-23 11:15:34 +02:00
docs refactor(wordlens): rename "Word Wise" to "Word Lens" (#4633) 2026-06-17 19:09:29 +02:00
e2e test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
extensions chore(send-to-readest): add Chrome Web Store screenshot generator (#4664) 2026-06-19 12:58:24 +02:00
public feat(reader): Auto Scroll reading mode for scrolled flow (#4998) (#4999) 2026-07-07 17:45:02 +02:00
scripts fix(auth): surface OAuth callback errors on desktop deeplink (#4881) (#4894) 2026-07-02 17:03:56 +02:00
src fix(reader): gate captured slide/curl turn on scrollLocked like push (#5000) 2026-07-07 18:01:18 +02:00
src-tauri fix(android): background TTS media controls + lock-screen scrubber/seek + Edge click fix (#4994) 2026-07-07 13:35:53 +02:00
workers feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00
.env fix: resolve various tracked exceptions in ph (#3584) 2026-03-22 08:16:38 +01:00
.env.local.example feat(discord): support show reading status with Discord Rich Presence, closes #1538 (#2998) 2026-01-19 17:42:19 +01:00
.env.tauri fix(flathub): use custom dbus id for single instance on Linux (#2971) 2026-01-16 05:59:25 +01:00
.env.tauri.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.env.web
.env.web.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.gitignore chore(agent): update agent memories (#4833) 2026-06-28 05:11:46 +02:00
AGENTS.md agent: update implementation scope (#4319) 2026-05-27 07:50:31 +02:00
CLAUDE.md chore(agents): add AGENTS.md for readest-app (#3415) 2026-02-28 15:30:31 +01:00
components.json refactor: rename components/ui to components/primitives (#3064) 2026-01-25 06:41:18 +01:00
DESIGN.md fix(sync): cloud-sync settings polish + temporary premium ungate (#4828) 2026-06-27 19:11:17 +02:00
i18n-langs.json feat(i18n): add Uzbek and Brazilian Portuguese translations (#4061) 2026-05-05 09:20:44 +02:00
i18next-scanner.config.cjs fix(cbz): ComicInfo metadata + CBZ page count + WebDAV i18n (#4282) 2026-05-23 15:59:29 +02:00
next.config.mjs build(web): standalone Docker image + drop Turbopack build cache (#4619) 2026-06-16 21:21:24 +02:00
open-next.config.ts chore(config): add disableIncrementalCache to skip populating remote R2 incremental cache (#4623) 2026-06-17 03:51:17 +02:00
package.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
playwright.config.ts test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
postcss.config.mjs
raw-loader.d.ts
release-notes.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
skills-lock.json ui/ux: codify design system and migrate settings to shared primitives (#4116) 2026-05-10 17:46:25 +02:00
tailwind.config.ts chore: bump next.js to the latest version (#3106) 2026-01-29 12:29:17 +01:00
TODOS.md feat(reader): redesign the TTS control as a mini player with an expandable player sheet (#4996) 2026-07-07 16:37:59 +02:00
tsconfig.json fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
vite.config.ts chore: experimental vinext build (#3486) 2026-03-06 18:04:28 +01:00
vitest.android.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.browser.config.mts chore: bump turso to the latest version (#4086) 2026-05-07 20:11:47 +02:00
vitest.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.env.mts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
vitest.setup.ts feat(tts): reuse the speaking session across paragraph & RSVP modes (#4657) 2026-06-19 07:47:29 +02:00
vitest.tauri.config.mts perf(import+open): native Rust EPUB/MOBI parser, OPF prefetch, parallel TOC enrichment (#4369) 2026-06-10 16:58:25 +02:00
vitest.tauri.setup.ts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
wdio.conf.ts chore(testing): add Tauri integration tests and E2E test infrastructure (#3483) 2026-03-05 19:14:01 +01:00
wrangler.toml feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00