summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-03-11 19:35:07 +0100
committerAleksander Machniak <alec@alec.pl>2015-03-11 19:35:07 +0100
commita172f39ff75da0aee00bbfb993c356d0aeba1df0 (patch)
tree235b42569ab7809bf7d86a8674f42004ba72d888 /program
parent3c4d3dcc42eb8907134de11bd1fed7ef6f97f0a7 (diff)
Fix bug where TinyMCE area height was too small on slow network connection (#1490310)
Diffstat (limited to 'program')
-rw-r--r--program/js/editor.js46
1 files changed, 23 insertions, 23 deletions
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