diff options
author | Aleksander Machniak <alec@alec.pl> | 2015-03-11 19:35:07 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2015-03-11 19:35:07 +0100 |
commit | a172f39ff75da0aee00bbfb993c356d0aeba1df0 (patch) | |
tree | 235b42569ab7809bf7d86a8674f42004ba72d888 | |
parent | 3c4d3dcc42eb8907134de11bd1fed7ef6f97f0a7 (diff) |
Fix bug where TinyMCE area height was too small on slow network connection (#1490310)
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/js/editor.js | 46 |
2 files changed, 24 insertions, 23 deletions
@@ -34,6 +34,7 @@ CHANGELOG Roundcube Webmail - Fix so search filter, scope and fields are reset on folder change - Fix rows count when messages search fails (#1490266) - Fix bug where spellchecking in HTML editor do not work after switching editor type more than once (#1490311) +- Fix bug where TinyMCE area height was too small on slow network connection (#1490310) RELEASE 1.1.0 ------------- diff --git a/program/js/editor.js b/program/js/editor.js index 3b2d65ec2..296a161ca 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -134,6 +134,15 @@ function rcube_text_editor(config, id) return; } + var area = $('#' + this.id), + height = $('div.mce-toolbar-grp:first', area.parent()).height(); + + // the editor might be still not fully loaded, making the editing area + // inaccessible, wait and try again (#1490310) + if (height > 200 || height > area.height()) { + return setTimeout(function () { ref.init_callback(event); }, 300); + } + var css = {}, elem = rcube_find_object('_from'), fe = rcmail.env.compose_focus_elem; @@ -154,21 +163,16 @@ function rcube_text_editor(config, id) // Focus previously focused element if (fe && fe.id != this.id) { - // use setTimeout() for IE9 (#1488541) - window.setTimeout(function() { - window.focus(); // for WebKit (#1486674) - fe.focus(); - rcmail.env.compose_focus_elem = null; - }, 10); + window.focus(); // for WebKit (#1486674) + fe.focus(); + rcmail.env.compose_focus_elem = null; } } - window.setTimeout(function() { - // set tabIndex and set focus to element that was focused before - ref.tabindex(fe && fe.id == ref.id); - // Trigger resize (needed for proper editor resizing in some browsers) - $(window).resize(); - }, 100); + // set tabIndex and set focus to element that was focused before + ref.tabindex(fe && fe.id == ref.id); + // Trigger resize (needed for proper editor resizing in some browsers) + $(window).resize(); }; // set tabIndex on tinymce editor @@ -240,17 +244,13 @@ function rcube_text_editor(config, id) input.val(data); tinymce.execCommand('mceAddEditor', false, ref.id); - setTimeout(function() { - if (ref.editor) { - var body = $(ref.editor.getBody()); - if (rcmail.env.default_font) - body.css('font-family', rcmail.env.default_font); - // #1486593 - ref.tabindex(true); - // put cursor on start of the compose body - ref.editor.selection.setCursorLocation(body.children().first().get(0)); - } - }, 500); + if (ref.editor) { + var body = $(ref.editor.getBody()); + // #1486593 + ref.tabindex(true); + // put cursor on start of the compose body + ref.editor.selection.setCursorLocation(body.children().first().get(0)); + } }; // convert to html |