From 0d35318916bc5b232dfc3532db0efb26f0af7f22 Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Mon, 31 Jul 2006 21:28:07 +0200
Subject: [PATCH] spellchecker CSS changes #539 #824

This patch now assigns the needed proprietary CSS attributes for the spellchecker
through JavaScript. This makes the CSS valid again (at least it appears to be ;-))
I also fixed a problem with leading single spaces in IE

darcs-hash:20060731192807-7ad00-b82bdcae9a0c8cf063c3a1e985dbfd1dfdee7b06.gz
---
 lib/exe/spellcheck.php    |  3 ++-
 lib/scripts/spellcheck.js | 15 +++++++++++++++
 lib/styles/spellcheck.css |  8 +-------
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/lib/exe/spellcheck.php b/lib/exe/spellcheck.php
index 2dea15465..daddebe47 100644
--- a/lib/exe/spellcheck.php
+++ b/lib/exe/spellcheck.php
@@ -117,7 +117,8 @@ function spell_check() {
   $string = preg_replace("/(\015\012)|(\015)/","\012",$string);
   $string = htmlspecialchars($string);
 
-  // make sure multiple spaces are kept
+  // make sure multiple spaces and leading are kept
+  $string = preg_replace('/^ /m','&nbsp;',$string);
   $string = preg_replace('/  /','&nbsp; ',$string);
 
   // we need the text as array later
diff --git a/lib/scripts/spellcheck.js b/lib/scripts/spellcheck.js
index e00512010..73b392f5b 100644
--- a/lib/scripts/spellcheck.js
+++ b/lib/scripts/spellcheck.js
@@ -120,6 +120,21 @@ function ajax_spell_class(){
     this.showboxObj = document.getElementById('spell__result');
     this.suggestObj = document.getElementById('spell__suggest');
 
+
+    // set wordwrap style with browser propritary attributes
+    if(is_gecko){
+      this.showboxObj.style.whiteSpace = '-moz-pre-wrap'; // Mozilla, since 1999
+    }else if(is_opera_preseven){
+      this.showboxObj.style.whiteSpace = '-pre-wrap';     // Opera 4-6
+    }else if(is_opera_seven){
+      this.showboxObj.style.whiteSpace = '-o-pre-wrap';   // Opera 7
+    }else{
+      this.showboxObj.style['word-wrap']   = 'break-word';    //Internet Explorer 5.5+
+    }
+    // Which browser supports this?
+    // this.showboxObj.style.whiteSpace = 'pre-wrap';      // css-3
+
+
     // set Translation Strings
     this.txtStart = txtStart;
     this.txtStop  = txtStop;
diff --git a/lib/styles/spellcheck.css b/lib/styles/spellcheck.css
index c2d43e0cd..51106f95a 100644
--- a/lib/styles/spellcheck.css
+++ b/lib/styles/spellcheck.css
@@ -1,5 +1,5 @@
 /**
- * Basic styles for the spellchecker. Only included when the spellchek option
+ * Basic styles for the spellchecker. Only included when the spellcheck option
  * is enabled. These styles are the absolute minimum to make the spellchecker
  * work. Templates should add addional styles for making it look nice.
  */
@@ -17,11 +17,5 @@ div.dokuwiki div#spell__result {
   font-family:monospace;
   overflow: auto;
   z-index: 1;
-
-  white-space: pre-wrap;       /* css-3 */
-  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
-  white-space: -pre-wrap;      /* Opera 4-6 */
-  white-space: -o-pre-wrap;    /* Opera 7 */
-  word-wrap: break-word;       /* Internet Explorer 5.5+ */
 }
 
-- 
GitLab