diff options
author | thomascube <thomas@roundcube.net> | 2010-07-31 09:48:46 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2010-07-31 09:48:46 +0000 |
commit | 5cff852b07b83ddf330fcaffd0843eb3cad6d5ee (patch) | |
tree | 7f38865196239140ea5e3a56dd279811fe268ff0 /program | |
parent | 7b808b585bc80f25bc9565cc5737bfb1293a1d7c (diff) |
Disable active spell check in tinyMCE before switching to plaintext mode (#1486870) + focus message field after mode switch
Diffstat (limited to 'program')
-rw-r--r-- | program/js/app.js | 11 | ||||
-rw-r--r-- | program/js/editor.js | 21 |
2 files changed, 15 insertions, 17 deletions
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(); } } |