Skip to content

fix: preserve pdf scroll position on dark mode toggle#2

Open
natiyeshi wants to merge 1 commit into
daveragos:mainfrom
natiyeshi:fix/pdf-dark-mode-scroll
Open

fix: preserve pdf scroll position on dark mode toggle#2
natiyeshi wants to merge 1 commit into
daveragos:mainfrom
natiyeshi:fix/pdf-dark-mode-scroll

Conversation

@natiyeshi

Copy link
Copy Markdown

What's the problem?

When switching between light and dark mode while reading a PDF, the viewer would auto-scroll back to the top of the document, losing the user's current reading position.

Root Cause

ColorFiltered was keyed with ValueKey(widget.settings.theme). In Flutter, changing a widget's key forces it to tear down and rebuild the entire subtree — including the PdfViewer inside it — which resets the scroll position to the top.

Fix

Removed the ValueKey from ColorFiltered. Since ColorFiltered only wraps the viewer with a color matrix, it doesn't need to rebuild when the theme changes — it simply updates the colorFilter in place. This keeps the PdfViewer alive across theme switches, preserving the scroll position.

Steps to Reproduce

Open any PDF
Scroll to any page beyond the first
Toggle dark/light mode from settings
✅ Scroll position is now preserved (was resetting to top before)

Changes

lib/screens/reading/widgets/pdf_view.dart — removed key: ValueKey(widget.settings.theme) from ColorFiltered

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