Fix bug where TinyMCE area height was too small on slow network connection (#1490310)

pull/268/head
Aleksander Machniak 10 years ago
parent 3c4d3dcc42
commit a172f39ff7

@ -34,6 +34,7 @@ CHANGELOG Roundcube Webmail
- Fix so search filter, scope and fields are reset on folder change - Fix so search filter, scope and fields are reset on folder change
- Fix rows count when messages search fails (#1490266) - 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 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 RELEASE 1.1.0
------------- -------------

@ -134,6 +134,15 @@ function rcube_text_editor(config, id)
return; 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 = {}, var css = {},
elem = rcube_find_object('_from'), elem = rcube_find_object('_from'),
fe = rcmail.env.compose_focus_elem; fe = rcmail.env.compose_focus_elem;
@ -154,21 +163,16 @@ function rcube_text_editor(config, id)
// Focus previously focused element // Focus previously focused element
if (fe && fe.id != this.id) { if (fe && fe.id != this.id) {
// use setTimeout() for IE9 (#1488541) window.focus(); // for WebKit (#1486674)
window.setTimeout(function() { fe.focus();
window.focus(); // for WebKit (#1486674) rcmail.env.compose_focus_elem = null;
fe.focus();
rcmail.env.compose_focus_elem = null;
}, 10);
} }
} }
window.setTimeout(function() { // set tabIndex and set focus to element that was focused before
// set tabIndex and set focus to element that was focused before ref.tabindex(fe && fe.id == ref.id);
ref.tabindex(fe && fe.id == ref.id); // Trigger resize (needed for proper editor resizing in some browsers)
// Trigger resize (needed for proper editor resizing in some browsers) $(window).resize();
$(window).resize();
}, 100);
}; };
// set tabIndex on tinymce editor // set tabIndex on tinymce editor
@ -240,17 +244,13 @@ function rcube_text_editor(config, id)
input.val(data); input.val(data);
tinymce.execCommand('mceAddEditor', false, ref.id); tinymce.execCommand('mceAddEditor', false, ref.id);
setTimeout(function() { if (ref.editor) {
if (ref.editor) { var body = $(ref.editor.getBody());
var body = $(ref.editor.getBody()); // #1486593
if (rcmail.env.default_font) ref.tabindex(true);
body.css('font-family', rcmail.env.default_font); // put cursor on start of the compose body
// #1486593 ref.editor.selection.setCursorLocation(body.children().first().get(0));
ref.tabindex(true); }
// put cursor on start of the compose body
ref.editor.selection.setCursorLocation(body.children().first().get(0));
}
}, 500);
}; };
// convert to html // convert to html

Loading…
Cancel
Save