From 1cbd6ccf9b92458fb0e2222ca133259d75db81bf Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 6 Jun 2018 17:53:11 +0530 Subject: [PATCH] E-book viewer: Fix very slow loading for HTML files with very many images on Linux. Fixes #1774884 [loading flow for some ebooks takes painfully long in linux](https://bugs.launchpad.net/calibre/+bug/1774884) For some reason setting column break inside on the images was causing a re-layout only on Linux. --- resources/compiled_coffeescript.zip | Bin 102965 -> 103225 bytes src/calibre/ebooks/oeb/display/paged.coffee | 9 +++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/compiled_coffeescript.zip b/resources/compiled_coffeescript.zip index 0f7aacacfacf00fd9b45426e1dda635e2ac25886..0a42b604c860efe4a440b00cacf165293f3cf68d 100644 GIT binary patch delta 1115 zcmZWoZA?>F80IZ_`$emWI681Slu#f=J)43Gb$)6yU{9L?mu`jd?K{&* ztPX#jwv@zvXf~lYS*~82ehxTrYCVqq?JNL%eH+!1e{OI%J@Xkz>Z6(4fV*z8+!X0iVA#;U%RKmtU3^Grb6JY^vjxA98Z9_B$}O zV1YP}E$r9yRp<5jKhejOVrlvdkkFOB05Z;|KR3%c?fzyW<9}&8TmAY$x$0PaZ8k^| zH;K7PT&?>5ZgD}gCu7zHVk%jB3V5Nv49yvnRxRW+W+s6wMJOSl$3HTnPKwZ)UZ_CF zvKt3}@zULT;MTEP24Xn4JZqJ^I@+Qgk=BGLBo#M)zrq`$QlvE*j3{_|g=}&YDcIe5 zEZUZA&xY(Pqq_2AZD>sSy`LIeYR8_gu}WzADteAy~W{uK>PMWHFXR@gKqW!Jvam&!(0lA zCUht5_+qpirJ#wXhG7pK8-iCjKV{(UO~mf^Zg1m-;C5bY6vdFR!zcK~#zs*H3E@yM h=naXyC&HY)qY|GNuVT#+Z{e*6)Wfx%=1xXOtlG^5UpYuyu%M4SxF(@>b z2YHP`DZ(g%gpVA?P$@!0tt3c{B7|yl6?q{9nc6oeq0xJF-gD0Loag)u^(Q^KmozXq ztYn*mM^5%Eek%4QBozB-i5WCB&Z`gGd=>C-mAdcQ8~UGRO8r$GARZo1bgTAbWP@BNl1y3 zWd)uJWeR=g>kuN_@#16)z3c_)E;A`1K6kY_zs`NO#_uU2UQ$eW+ss?I5KT)Vq`_C; zu%2c2atEi{l7XQIE`b_9zO`?vEkBVg=E>}QeVo>2akpnaz`9Tj%xbttvqZTDm<=ni z{=OPl!g66O8GdNEoQMT*GAzXhSGMw6HP|t)pjY)E$Nu@!O=2zo6)TTsfEV@AK45Vo zx>Lr+8?h7-mTyFhrBf;{=j(Tw#6TFf#z1Ph^q*tGP5SefWdb|Hk)?OAVQT4UT$W+x zl83&|1u;Hcb|;PsUWTABhPWLI@~XEh_m(RBI(Q|0#<2F8T6@*BRSz;ga!n7@u76LN>4XYlmIv-6LcbH86?n!E=Z@k z0O*8c$ACu4VK?;$V2k8UJ0v_7G;49LJ2i%h(7pg1rBAz{l@8wkt-)$`x*UZjo6+T} nvN#=Xm(A*MTa5*_eKx1lXsmWv-Gvr&flX^5agxj~XoHqNJ{3%f diff --git a/src/calibre/ebooks/oeb/display/paged.coffee b/src/calibre/ebooks/oeb/display/paged.coffee index 8d43850e61..fd06913547 100644 --- a/src/calibre/ebooks/oeb/display/paged.coffee +++ b/src/calibre/ebooks/oeb/display/paged.coffee @@ -348,11 +348,16 @@ class PagedDisplay # force a relayout if the render tree is dirty. images = [] vimages = [] + bounding_rects = [] + img_tags = document.getElementsByTagName('img') + for img in img_tags + bounding_rects.push(img.getBoundingClientRect()) maxh = this.current_page_height - for img in document.getElementsByTagName('img') + for i in [0...img_tags.length] + img = img_tags[i] previously_limited = calibre_utils.retrieve(img, 'width-limited', false) data = calibre_utils.retrieve(img, 'img-data', null) - br = img.getBoundingClientRect() + br = bounding_rects[i] if data == null data = {'left':br.left, 'right':br.right, 'height':br.height, 'display': img.style.display} calibre_utils.store(img, 'img-data', data)