Skip to content

Commit 205bbab

Browse files
authored
Merge pull request phaserjs#4886 from rexrainbow/text-wrap
Don't add white space at last word of a line
2 parents 65efb6b + 3c4cf88 commit 205bbab

1 file changed

Lines changed: 18 additions & 14 deletions

File tree

src/gameobjects/text/static/Text.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -508,16 +508,20 @@ var Text = new Class({
508508
{
509509
var result = '';
510510
var lines = text.split(this.splitRegExp);
511+
var lastLineIndex = lines.length - 1;
512+
var whiteSpaceWidth = context.measureText(' ').width;
511513

512-
for (var i = 0; i < lines.length; i++)
514+
for (var i = 0; i <= lastLineIndex; i++)
513515
{
514516
var spaceLeft = wordWrapWidth;
515517
var words = lines[i].split(' ');
518+
var lastWordIndex = words.length - 1;
516519

517-
for (var j = 0; j < words.length; j++)
520+
for (var j = 0; j <= lastWordIndex; j++)
518521
{
519-
var wordWidth = context.measureText(words[j]).width;
520-
var wordWidthWithSpace = wordWidth + context.measureText(' ').width;
522+
var word = words[j];
523+
var wordWidth = context.measureText(word).width;
524+
var wordWidthWithSpace = wordWidth + whiteSpaceWidth;
521525

522526
if (wordWidthWithSpace > spaceLeft)
523527
{
@@ -526,24 +530,24 @@ var Text = new Class({
526530
if (j > 0)
527531
{
528532
result += '\n';
533+
spaceLeft = wordWrapWidth;
529534
}
535+
}
530536

531-
result += words[j] + ' ';
532-
spaceLeft = wordWrapWidth - wordWidthWithSpace;
537+
result += word;
538+
539+
if (j < lastWordIndex)
540+
{
541+
result += ' ';
542+
spaceLeft -= wordWidthWithSpace;
533543
}
534544
else
535545
{
536-
spaceLeft -= wordWidthWithSpace;
537-
result += words[j];
538-
539-
if (j < (words.length - 1))
540-
{
541-
result += ' ';
542-
}
546+
spaceLeft -= wordWidth;
543547
}
544548
}
545549

546-
if (i < lines.length - 1)
550+
if (i < lastLineIndex)
547551
{
548552
result += '\n';
549553
}

0 commit comments

Comments
 (0)