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