diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | skins/larry/ui.js | 46 |
2 files changed, 28 insertions, 19 deletions
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Call resize handler in intervals to prevent lags and double onresize calls in Chrome (#1489005) - Fix javascript error in IE9 when loading form with placeholders into an iframe (#1489008) - Fix handling of some conditional comment tags in HTML message (#1489004) - Add rel="noreferrer" for links in displayed messages (#1484686) diff --git a/skins/larry/ui.js b/skins/larry/ui.js index b787dbb8d..58e03fbdc 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -287,28 +287,36 @@ function rcube_mail_ui() /** * Update UI on window resize */ - function resize() + function resize(e) { - if (rcmail.env.task == 'mail') { - if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') - layout_messageview(); - else if (rcmail.env.action == 'compose') - layout_composeview(); - } + // resize in intervals to prevent lags and double onresize calls in Chrome (#1489005) + var interval = e ? 10 : 0; - // make iframe footer buttons float if scrolling is active - $('body.iframe .footerleft').each(function(){ - var footer = $(this), - body = $(document.body), - floating = footer.hasClass('floating'), - overflow = body.outerHeight(true) > $(window).height(); - - if (overflow != floating) { - var action = overflow ? 'addClass' : 'removeClass'; - footer[action]('floating'); - body[action]('floatingbuttons'); + if (rcmail.resize_timeout) + window.clearTimeout(rcmail.resize_timeout); + + rcmail.resize_timeout = window.setTimeout(function() { + if (rcmail.env.task == 'mail') { + if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') + layout_messageview(); + else if (rcmail.env.action == 'compose') + layout_composeview(); } - }); + + // make iframe footer buttons float if scrolling is active + $('body.iframe .footerleft').each(function(){ + var footer = $(this), + body = $(document.body), + floating = footer.hasClass('floating'), + overflow = body.outerHeight(true) > $(window).height(); + + if (overflow != floating) { + var action = overflow ? 'addClass' : 'removeClass'; + footer[action]('floating'); + body[action]('floatingbuttons'); + } + }); + }, interval); } /** |