From f4b8681160110659f5f78b309237de6f43c32537 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 01 Oct 2008 04:29:58 -0400
Subject: [PATCH] - Stop spellchecking when switching to html editor (#1485362)

---
 CHANGELOG            |    3 +++
 program/js/common.js |   17 +++++++++++++++++
 program/js/editor.js |    2 +-
 program/js/app.js    |    7 +++++++
 4 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 24bd49a..cf08a0c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,9 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/10/01 (alec)
+- Stop spellchecking when switching to html editor (#1485362)
+
 2008/09/29 (alec)
 ----------
 - Added 'mime_param_folding' option with possibility to choose 
diff --git a/program/js/app.js b/program/js/app.js
index 8ba0078..bcc5e50 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1971,6 +1971,13 @@
   this.display_spellcheck_controls = function(vis)
   {
     if (this.env.spellcheck) {
+      // stop spellchecking process
+      if (!vis && !this.spellcheck_ready) 
+        {
+	exec_event(this.env.spellcheck.check_link, 'click');
+	this.set_spellcheck_state('ready');
+	}
+			      
       this.env.spellcheck.check_link.style.visibility = vis ? 'visible' : 'hidden';
       this.env.spellcheck.switch_lan_pic.style.visibility = vis ? 'visible' : 'hidden';
     }
diff --git a/program/js/common.js b/program/js/common.js
index 5049061..4b877ba 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -650,3 +650,20 @@
     return o;
     }
   }
+
+
+// Fire event on specified element
+function exec_event(element,event)
+{  
+  if (document.createEventObject) {
+    // dispatch for IE  
+    var evt = document.createEventObject();
+    return element.fireEvent('on'+event,evt)
+  }
+  else {  
+    // dispatch for firefox + others  
+    var evt = document.createEvent("HTMLEvents");
+    evt.initEvent(event, true, true); // event type,bubbling,cancelable
+    return !element.dispatchEvent(evt);
+   }
+}
diff --git a/program/js/editor.js b/program/js/editor.js
index ceab021..a9aec62 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -58,12 +58,12 @@
   // do the appropriate conversion
   if (selectedEditor == 'html')
     {
+    rcmail.display_spellcheck_controls(false);
     var composeElement = document.getElementById('compose-body');
     var htmlText = "<pre>" + composeElement.value + "</pre>";
     composeElement.value = htmlText;
     tinyMCE.execCommand('mceAddControl', true, 'compose-body');
     htmlFlag.value = "1";
-    rcmail.display_spellcheck_controls(false);
     }
   else
     {

--
Gitblit v1.9.1