Aleksander Machniak
2013-03-22 d227eda9cba8f120b49ab6b9d6d3b46651f8c6c2
Call resize handler in intervals to prevent lags and double onresize calls in Chrome (#1489005)
2 files modified
45 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
skins/larry/ui.js 44 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
skins/larry/ui.js
@@ -287,28 +287,36 @@
  /**
   * 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 (rcmail.resize_timeout)
      window.clearTimeout(rcmail.resize_timeout);
      if (overflow != floating) {
        var action = overflow ? 'addClass' : 'removeClass';
        footer[action]('floating');
        body[action]('floatingbuttons');
    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);
  }
  /**