mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-26 11:08:48 -06:00
The Hand tool scrolled by the page widget's drag delta from inside the page view's ScrollArea. egui applies that delta when the area ends, after the frame's pages are laid out and drawn, so the page showed each move a frame late and trailed behind the pointer. (Until the page view stopped animating its scrolls, the delta was also eased in over several frames, which is the stutter #924 and #1992 describe.) On top of that, the points the pointer moved before egui tells a drag from a click were dropped, so the page never caught up with the grab point. Pan before the area lays the pages out instead: when the page widget is being dragged with the Hand tool, set the scroll offset from the last offset minus this frame's pointer delta, or minus everything moved since the press on the frame the drag is recognised. The page now moves point for point with the pointer in the frame it moves, and still stops where it is let go (no fling). Other scrolls (go to page, links, zoom anchors, compare sync) are untouched and still win when asked for in the same frame.