Eager PDF rendering, natural scale normalisation, no horizontal scroll

Fixkamo-internal
Shipped
April 12, 2026 at 3:01 AM UTC
Author
kamo
Commit
3cd40c7

- PdfCanvas: replace IntersectionObserver with eager render-all-pages. The observer-based approach was unreliable when the design tab starts with display:none — browsers don't reliably re-fire intersection events when an ancestor transitions from display:none to visible. - PdfCanvas: add naturalScale normalisation (TARGET_PAGE_WIDTH_PX=612). Some PDFs from ConversionService use non-standard unit systems; dividing TARGET_PAGE_WIDTH_PX by the first-page viewport width gives a correction factor so pages always render at a readable size. - PdfCanvas: decouple renderPage from zoom via zoomRef so the callback is stable and doesn't cascade effect re-runs on every zoom step. - Toolbox/PageThumbnailSidebar: change root Box width from fixed px to 100% so they size to their container and don't overflow when the container's vertical scrollbar steals width. - DesignTab: change sidebar containers from overflowY:auto to overflow:hidden — each sidebar manages its own internal scroll.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing