Fix blurry high-zoom PDF rendering caused by detail canvas positioning - #4986
Merged
James-Yu merged 1 commit intoSep 18, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The change correctly preserves PDF.js detail-canvas positioning without affecting rendering limits.
Pull request overview
This PR fixes blurry high-zoom PDF rendering by limiting the relative-position override to PDF.js’s base canvas.
Changes:
- Restricts the CSS override to
canvas:first-child. - Preserves absolute positioning for detail canvases.
File summaries
| File | Description |
|---|---|
viewer/latexworkshop.css |
Updates canvas positioning selector and documents its purpose. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PDF text stays blurry at high zoom because the
position: relative !importantoverride inlatexworkshop.cssapplies to PDF.js's detail canvas as well as its base canvas. Restrict the override to the first canvas so the high-resolution detail canvas can retain PDF.js's absolute positioning and cover the low-resolution base.Reproduction and cause
PDF.js inserts the detail canvas immediately after the base canvas and positions it over the visible part of the page. The existing rule instead puts it in normal flow below the full-height base canvas, where the page's overflow clipping hides it.
In a Chromium reproduction at 400%, the base canvas was displayed at 3264 × 4224 CSS pixels. The detail canvas had finished rendering but its bounding rectangle started at y=4224 rather than y=0. With this selector change, the base remains
position: relative, the detail canvas becomesposition: absolute, and its top is correctly y=0. Text is sharp again without changing canvas limits or disabling detail rendering.Validation
npm run compile— passed on upstream52f8c9ewith this change.npm run lint— passed.git diff --check— passed.The patch preserves the existing positioning of the base canvas and leaves PDF.js's rendering and memory limits unchanged.