Skip to content

fix(reader): keep text selection on the current page - #718

Open
cha1latte wants to merge 1 commit into
codedogQBY:mainfrom
cha1latte:agent/upstream-fix-selection-page-jumps
Open

fix(reader): keep text selection on the current page#718
cha1latte wants to merge 1 commit into
codedogQBY:mainfrom
cha1latte:agent/upstream-fix-selection-page-jumps

Conversation

@cha1latte

Copy link
Copy Markdown
Contributor

Summary

Fix Android WebView text selection moving the paginated reader container toward a neighboring column while users drag native selection handles.

The paginator now:

  • cancels and restores partial swipe movement when text selection takes ownership;
  • holds the aligned page position against unowned native selection auto-scroll;
  • preserves the existing intentional one-second edge-hold page navigation;
  • leaves continuous reading mode and its scroll inertia behavior intact.

Validation

  • pnpm vitest run packages/app-expo/src/lib/reader/paginator-touch-navigation.test.js — 10 passed
  • TZ=UTC pnpm --filter @readany/core test — 584 passed
  • pnpm --filter @readany/app-expo test — 24 passed
  • pnpm exec tsc --noEmit -p packages/app-expo/tsconfig.json
  • pnpm exec biome check packages/foliate-js/paginator-touch.js packages/app-expo/src/lib/reader/paginator-touch-navigation.test.js
  • pnpm --filter @readany/app-expo run build:reader
  • pnpm --filter app exec vite build
  • Physical Android WebView: selection expanded across a multi-column EPUB page in both directions without changing the visible page alignment; reopening the book restored the same saved page.

pnpm --filter app build still stops on upstream main at the pre-existing unused MS_SUPPORTED_LANGS declaration in packages/core/src/translation/providers.ts; this branch does not modify that file, and the direct Vite production bundle passes.

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