@@ -213,7 +213,7 @@ export default {
213213 boundHandleWheel: null ,
214214 debouncedApplyZoom: null ,
215215 visualScale: this .initialScale ,
216- resizeObserver : null ,
216+ autoFitApplied : false ,
217217 }
218218 },
219219 mounted () {
@@ -229,17 +229,6 @@ export default {
229229 window .addEventListener (' resize' , this .onViewportScroll )
230230 this .$el ? .addEventListener (' scroll' , this .onViewportScroll , { passive: true })
231231 this .$el ? .addEventListener (' wheel' , this .boundHandleWheel , { passive: false })
232- if (this .autoFitZoom ) {
233- window .addEventListener (' resize' , this .adjustZoomToFit )
234- if (typeof ResizeObserver !== ' undefined' ) {
235- this .resizeObserver = new ResizeObserver (() => {
236- this .scheduleAutoFitZoom ()
237- })
238- if (this .$el ) {
239- this .resizeObserver .observe (this .$el )
240- }
241- }
242- }
243232 },
244233 beforeUnmount () {
245234 if (this .zoomRafId ) {
@@ -257,13 +246,6 @@ export default {
257246 window .removeEventListener (' scroll' , this .onViewportScroll )
258247 window .removeEventListener (' resize' , this .onViewportScroll )
259248 this .$el ? .removeEventListener (' scroll' , this .onViewportScroll )
260- if (this .autoFitZoom ) {
261- window .removeEventListener (' resize' , this .adjustZoomToFit )
262- if (this .resizeObserver ) {
263- this .resizeObserver .disconnect ()
264- this .resizeObserver = null
265- }
266- }
267249 if (this .viewportRafId ) {
268250 window .cancelAnimationFrame (this .viewportRafId )
269251 this .viewportRafId = 0
@@ -273,6 +255,7 @@ export default {
273255 async init () {
274256 if (! this .initFiles || this .initFiles .length === 0 ) return
275257 const docs = []
258+ this .autoFitApplied = false
276259
277260 for (let i = 0 ; i < this .initFiles .length ; i++ ) {
278261 const file = this .initFiles [i]
@@ -852,14 +835,15 @@ export default {
852835 return Math .max (0.1 , Math .min (2 , availableWidth / maxPageWidth))
853836 },
854837 scheduleAutoFitZoom () {
838+ if (this .autoFitApplied ) return
855839 if (this .zoomRafId ) return
856840 this .zoomRafId = window .requestAnimationFrame (() => {
857841 this .zoomRafId = 0
858842 this .adjustZoomToFit ()
859843 })
860844 },
861845 adjustZoomToFit () {
862- if (! this .autoFitZoom || ! this .pdfDocuments .length ) return
846+ if (! this .autoFitZoom || this . autoFitApplied || ! this .pdfDocuments .length ) return
863847
864848 const widths = this .pdfDocuments
865849 .flatMap (doc => doc .pageWidths || [])
@@ -881,6 +865,7 @@ export default {
881865 }
882866
883867 const optimalScale = this .calculateOptimalScale (maxCanvasWidth)
868+ this .autoFitApplied = true
884869 if (Math .abs (optimalScale - this .scale ) > 0.01 ) {
885870 this .scale = optimalScale
886871 this .visualScale = optimalScale
0 commit comments