From 5cff852b07b83ddf330fcaffd0843eb3cad6d5ee Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sat, 31 Jul 2010 05:48:46 -0400
Subject: [PATCH] Disable active spell check in tinyMCE before switching to plaintext mode (#1486870) + focus message field after mode switch

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

diff --git a/program/js/editor.js b/program/js/editor.js
index fd128cb..c81ef25 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -67,19 +67,12 @@
   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 @@
       var node = editor.getContentAreaContainer().childNodes[0];
       if (textarea && node)
         node.tabIndex = textarea.tabIndex;
+      if (focus)
+        editor.getWin().focus();
     }
   }
 }
@@ -106,14 +101,16 @@
 
   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();
   }
 }

--
Gitblit v1.9.1