summaryrefslogtreecommitdiff
path: root/program/js/editor.js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js/editor.js')
-rw-r--r--program/js/editor.js17
1 files changed, 9 insertions, 8 deletions
diff --git a/program/js/editor.js b/program/js/editor.js
index 3b49968a7..1bc92aee8 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -104,6 +104,10 @@ function rcube_text_editor(config, id)
ed.on('keypress', function() {
rcmail.compose_type_activity++;
});
+ // secure spellchecker requests with Roundcube token
+ tinymce.util.XHR.on('beforeSend', function(e) {
+ e.xhr.setRequestHeader('X-Roundcube-Request', rcmail.env.request_token);
+ });
};
// textarea identifier
@@ -283,9 +287,10 @@ function rcube_text_editor(config, id)
var ed = this.editor;
if (ed) {
- if (ed.plugins && ed.plugins.spellchecker && this.spellcheck_active)
- ed.execCommand('mceSpellCheck');
+ if (ed.plugins && ed.plugins.spellchecker && this.spellcheck_active) {
+ ed.execCommand('mceSpellCheck', false);
this.spellcheck_observer();
+ }
}
else if (ed = this.spellchecker) {
if (ed.state && ed.state != 'ready' && ed.state != 'no_error_found')
@@ -304,17 +309,13 @@ function rcube_text_editor(config, id)
return ed.state != 'ready' && ed.state != 'no_error_found';
};
- // resume spellchecking, highlight provided mispellings without new ajax request
+ // resume spellchecking, highlight provided mispellings without a new ajax request
this.spellcheck_resume = function(data)
{
var ed = this.editor;
if (ed) {
- ed.settings.spellchecker_callback = function(name, text, done, error) { done(data); };
- ed.execCommand('mceSpellCheck');
- ed.settings.spellchecker_callback = null;
-
- this.spellcheck_observer();
+ ed.plugins.spellchecker.markErrors(data);
}
else if (ed = this.spellchecker) {
ed.prepare(false, true);