summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-07-31 09:48:46 +0000
committerthomascube <thomas@roundcube.net>2010-07-31 09:48:46 +0000
commit5cff852b07b83ddf330fcaffd0843eb3cad6d5ee (patch)
tree7f38865196239140ea5e3a56dd279811fe268ff0
parent7b808b585bc80f25bc9565cc5737bfb1293a1d7c (diff)
Disable active spell check in tinyMCE before switching to plaintext mode (#1486870) + focus message field after mode switch
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/app.js11
-rw-r--r--program/js/editor.js21
-rw-r--r--skins/default/googiespell.css1
4 files changed, 17 insertions, 17 deletions
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 {