fix(pdf-server): let zoom-out button go below fit (revert button floor) (#589)
Some hosts overlay UI on the iframe (chat composer, etc.) without reporting it in safeAreaInsets.bottom, so computeFitScale's 'fit' fills the iframe but the page bottom sits under the overlay. Flooring the zoom-out button at fit removed the only escape hatch. Pinch keeps the fit floor + rubber-band (it needs a defined snap point for the exit-to-inline gesture). The button now goes to ZOOM_MIN as before #587.
This commit is contained in:
parent
721ccd04b8
commit
2e55c842ba
1 changed files with 6 additions and 6 deletions
|
|
@ -3340,13 +3340,13 @@ function zoomIn() {
|
|||
renderPage().then(scrollSelectionIntoView);
|
||||
}
|
||||
|
||||
async function zoomOut() {
|
||||
function zoomOut() {
|
||||
userHasZoomed = true;
|
||||
// Fullscreen floor is fit-to-page (anything smaller is dead margin).
|
||||
const fit =
|
||||
currentDisplayMode === "fullscreen" ? await computeFitScale() : null;
|
||||
const floor = fit !== null ? Math.max(ZOOM_MIN, fit) : ZOOM_MIN;
|
||||
scale = Math.max(scale - 0.25, floor);
|
||||
// Intentionally NOT floored at fit-to-page (unlike pinch). Hosts may
|
||||
// overlay UI on the iframe without reporting it in safeAreaInsets, so
|
||||
// "fit" can leave the page bottom hidden; the button is the escape hatch
|
||||
// to shrink past it. Pinch still rubber-bands at fit (see commitPinch).
|
||||
scale = Math.max(scale - 0.25, ZOOM_MIN);
|
||||
renderPage().then(scrollSelectionIntoView);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue