From a8f4d847369496981f96825bb7390a44f9428a84 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 01 Aug 2014 08:24:05 -0400
Subject: [PATCH] Update to TinyMCE 4.1.3 + small code improvements

---
 program/js/editor.js |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/program/js/editor.js b/program/js/editor.js
index 3b49968..1bc92ae 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -104,6 +104,10 @@
     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 @@
     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 @@
       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);

--
Gitblit v1.9.1