Revision: 3042
          http://vexi.svn.sourceforge.net/vexi/?rev=3042&view=rev
Author:   clrg
Date:     2008-08-06 22:46:58 +0000 (Wed, 06 Aug 2008)

Log Message:
-----------
Fixes for tab support

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/word.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t        
2008-08-06 22:22:50 UTC (rev 3041)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t        
2008-08-06 22:46:58 UTC (rev 3042)
@@ -268,7 +268,7 @@
     }
     
     /** get the character type from char 'v' */
-    static.getCharType = function(v) { return getCharCodeType(v.charAt(0)); }
+    static.getCharType = function(v) { return 
getCharCodeType(v.charCodeAt(0)); }
     
     /** make text v the textual content of this block */
     static.textWrite = function(v) {

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2008-08-06 
22:22:50 UTC (rev 3041)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2008-08-06 
22:46:58 UTC (rev 3042)
@@ -910,7 +910,7 @@
                         aPos = cPos;
                         // shift cursor forwards and check whether the 
position is legal
                         if (aWord and ++aPos >= aWord.text.length) {
-                            if (aWord.text.length == aPos) {
+                            if (aWord.text.length >= aPos) {
                                 if (cwInd != aBlock.numchildren-1) {
                                     aPos = 0;
                                     aWord = aBlock[cwInd+1];

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/word.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/word.t 2008-08-06 
22:22:50 UTC (rev 3041)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/word.t 2008-08-06 
22:46:58 UTC (rev 3042)
@@ -79,13 +79,15 @@
         var ci;
         var cx = 0;
         var dx;
-        var l = w.text.length;
+        var t = w[0].text;
+        var l = t.length;
         for (ci=0; l>ci; ci++) {
-            dx = vexi.ui.font.width(w.font, w.fontsize, w.text.charAt(ci));
+            dx = vexi.ui.font.width(w.font, w.fontsize, t.charAt(ci));
             cx += dx;
             if (cx - dx/2 > tx) break;
         }
-        return ci;
+        // adjust return index for tab-words
+        return (w.chartype != 0) ? ci : vexi.math.floor(ci/4);
     }
     
     /** assign vertical aligment as align for inner box */
@@ -116,9 +118,10 @@
     /** return textual content from internal text-box */
     static.textRead = function() {
         if (trapee.chartype == 0) {
-            var l = cascade.length;
+            var l = trapee[0].text.length;
             var r = "";
-            for (var i=0; l>i; i+=4) r += tabchar; 
+            for (var i=0; l>i; i+=4) r += tabchar;
+            return r;
         }
         return trapee[0].text;
     }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to