mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Speed up rendering in paged mode by not causing an extra re-layout to adjust the top margin of body
This commit is contained in:
parent
86455fc5f3
commit
fcdd96c2bb
@ -82,6 +82,17 @@ class PagedDisplay
|
||||
this.cols_per_screen = cols_per_screen
|
||||
|
||||
layout: () ->
|
||||
# Remove the top margin from the first child of body as that gets added
|
||||
# to the top margin of body. This is done here just in case
|
||||
# getComputedStyle() causes a relayout. The re-layout will be much
|
||||
# faster before we implement the multi-column layout.
|
||||
for node in document.body.childNodes
|
||||
if node.nodeType == 1 # Element node
|
||||
style = window.getComputedStyle(node)
|
||||
if style.display in ['block', 'table']
|
||||
node.style.setProperty('margin-top', '0px')
|
||||
break
|
||||
|
||||
ww = window.innerWidth
|
||||
wh = window.innerHeight
|
||||
body_height = wh - this.margin_bottom = this.margin_top
|
||||
@ -135,11 +146,6 @@ class PagedDisplay
|
||||
priority = rule.style.getPropertyPriority(prop)
|
||||
rule.style.setProperty(cprop, val, priority)
|
||||
|
||||
# Ensure that the top margin is correct, otherwise for some documents,
|
||||
# webkit lays out the body with a lot of space on top
|
||||
brect = document.body.getBoundingClientRect()
|
||||
if brect.top > this.margin_top
|
||||
bs.setProperty('margin-top', (this.margin_top - brect.top)+'px')
|
||||
this.in_paged_mode = true
|
||||
this.current_margin_side = sm
|
||||
return sm
|
||||
|
Loading…
x
Reference in New Issue
Block a user