From b747968e741fa4fa2f736398e1e72c9ee7c1f9da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 21 Apr 2025 22:17:52 +0200 Subject: [PATCH] fixing toFit to actually fit in any mode --- client/homebrew/brewRenderer/toolBar/toolBar.jsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/client/homebrew/brewRenderer/toolBar/toolBar.jsx b/client/homebrew/brewRenderer/toolBar/toolBar.jsx index 69d7fa237..80c54afd0 100644 --- a/client/homebrew/brewRenderer/toolBar/toolBar.jsx +++ b/client/homebrew/brewRenderer/toolBar/toolBar.jsx @@ -61,17 +61,19 @@ const ToolBar = ({ displayOptions, onDisplayOptionsChange, visiblePages, totalPa const widestPage = _.maxBy([...pages], 'offsetWidth').offsetWidth; if(displayOptions.spread === 'facing') - desiredZoom = (iframeWidth / widestPage) * 50; + desiredZoom = (iframeWidth / ((widestPage * 2) + parseInt(displayOptions.columnGap))) * 100; else desiredZoom = (iframeWidth / widestPage) * 100; } else if(mode == 'fit'){ - let minDimRatio; // find the page with the largest single dim (height or width) so that zoom can be adapted to fit it. - if(displayOptions.spread === 'facing') - minDimRatio = [...pages].reduce((minRatio, page)=>Math.min(minRatio, iframeWidth / page.offsetWidth / 2), Infinity); // if 'facing' spread, fit two pages in view - else - minDimRatio = [...pages].reduce((minRatio, page)=>Math.min(minRatio, iframeWidth / page.offsetWidth, iframeHeight / page.offsetHeight), Infinity); + const minDimRatio = [...pages].reduce( + (minRatio, page)=>Math.min(minRatio, + iframeWidth / ((page.offsetWidth * 2) + parseInt(displayOptions.columnGap)), + iframeHeight / page.offsetHeight + ), + Infinity + ); desiredZoom = minDimRatio * 100; }