diff --git a/CHANGELOG b/CHANGELOG index 7d7cc2687..fe27ecda1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Fix JS errors on compose mode switch (#1486870) - Fix message structure parsing when it lacks optional fields (#1486881) - Include all recipients in sendmail log - Support HTTP_X_FORWARDED_PROTO header for HTTPS detecting (#1486866) diff --git a/program/js/app.js b/program/js/app.js index a9da55744..c4ddb21e2 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -2815,13 +2815,14 @@ function rcube_webmail() tinyMCE.execCommand('mceAddControl', false, props.id); } else { - var thisMCE = tinyMCE.get(props.id), - existingHtml = thisMCE.getContent(); - - if (existingHtml) { + var thisMCE = tinyMCE.get(props.id), existingHtml; + if (thisMCE.plugins.spellchecker && thisMCE.plugins.spellchecker.active) + thisMCE.execCommand('mceSpellCheck', false); + + if (existingHtml = thisMCE.getContent()) { if (!confirm(this.get_label('editorwarning'))) { return false; - } + } this.html2plain(existingHtml, props.id); } tinyMCE.execCommand('mceRemoveControl', false, props.id); diff --git a/program/js/editor.js b/program/js/editor.js index fd128cb8f..c81ef2581 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -67,19 +67,12 @@ function rcmail_editor_callback(editor) var editor, elem = rcube_find_object('_from'); if (elem && elem.type=='select-one') rcmail.change_identity(elem); - // set tabIndex - rcmail_editor_tabindex(); - // set focus to element that was focused before - if (elem = rcmail.env.compose_focus_elem) { - if (elem.id == rcmail.env.composebody && (editor = tinyMCE.get(rcmail.env.composebody))) - editor.getWin().focus(); - else - elem.focus(); - } + // set tabIndex and set focus to element that was focused before + rcmail_editor_tabindex(rcmail.env.compose_focus_elem && rcmail.env.compose_focus_elem.id == rcmail.env.composebody); } // set tabIndex on tinyMCE editor -function rcmail_editor_tabindex() +function rcmail_editor_tabindex(focus) { if (rcmail.env.task == 'mail') { var editor = tinyMCE.get(rcmail.env.composebody); @@ -88,6 +81,8 @@ function rcmail_editor_tabindex() var node = editor.getContentAreaContainer().childNodes[0]; if (textarea && node) node.tabIndex = textarea.tabIndex; + if (focus) + editor.getWin().focus(); } } } @@ -106,14 +101,16 @@ function rcmail_toggle_editor(select, textAreaId, flagElement) if (ishtml) { // #1486593 - setTimeout("rcmail_editor_tabindex();", 500); + setTimeout("rcmail_editor_tabindex(true);", 500); if (flagElement && (flag = rcube_find_object(flagElement))) flag.value = '1'; } else { if (!res && select.tagName == 'SELECT') - select.value = 'html'; + select.value = 'html'; if (flagElement && (flag = rcube_find_object(flagElement))) flag.value = '0'; + + rcube_find_object(rcmail.env.composebody).focus(); } } diff --git a/skins/default/googiespell.css b/skins/default/googiespell.css index c48ff5a5a..d73ec6968 100644 --- a/skins/default/googiespell.css +++ b/skins/default/googiespell.css @@ -17,6 +17,7 @@ padding: 0 4px; font-size: 9pt; font-family: monospace; + border: 1px solid #666; } .googie_edit_layer span {