You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,6 @@
3
3
All notable changes to this project will be documented here.
4
4
5
5
## [unreleased]
6
-
-**Wheel/drag zoom focal point is now correct under CSS-scaled ancestors.** The previous fix converted viewport coords to annbox coords via `getBoundingClientRect()`, which only accounts for translation. Under a scaled ancestor (`transform: scale(...)`), the rect is in transformed pixels while `annbox.scrollLeft`/`scrollTop` and `imwrap.width()` are in layout pixels — a mismatch that left the focal off by the ancestor scale. Both call sites now route through a new `viewport_to_annbox_local(client_x, client_y)` helper that normalizes by `rect.width / annbox.clientWidth` (and the y equivalent), producing correct focal-anchoring under uniform or non-uniform ancestor scale.
7
-
-**`min_zoom_fit_ratio` now re-applies on annbox resize.** A new `ResizeObserver` on the annbox re-clamps `state.zoom_val` when the annbox is resized (e.g. by browser resize or a host container change). Previously the floor was only enforced on the next zoom gesture, so shrinking the host could leave the image below the just-fits level until the user zoomed. The observer is a no-op when `min_zoom_fit_ratio === 0`.
8
6
9
7
## [0.26.3] - Aug 13th, 2026
10
8
-**Fix wheel-zoom and drag-zoom focal point when the ULabel container is offset from the viewport origin.**`handle_wheel` and `drag_rezoom` used to pass raw `clientX`/`clientY` (viewport coords) straight into `rezoom`, which treats its focal-point arguments as annbox-local. When the container sat at viewport `(0, 0)` the two frames coincided and the bug was invisible; anywhere else (e.g. hosted inside a centered dialog, a padded panel, or below a header) zoom would snap by roughly the annbox's screen offset. Both call sites now convert to annbox-local via `getBoundingClientRect()` before calling `rezoom`, so zoom stays anchored to the cursor / mousedown point regardless of how the host embeds ULabel.
0 commit comments