#35 wip
authorKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 6 Aug 2019 12:28:13 +0000 (07:28 -0500)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 6 Aug 2019 12:28:13 +0000 (07:28 -0500)
src/jexer/TWindow.java
src/jexer/backend/LogicalScreen.java

index b8513c44298e01819e12d2cf5dbf07a18a1bdd02..77bd2b31544fe39f9f5f063a4f15df3ce343d66d 100644 (file)
@@ -34,6 +34,7 @@ import java.util.Set;
 import jexer.backend.Screen;
 import jexer.bits.CellAttributes;
 import jexer.bits.GraphicsChars;
+import jexer.bits.StringUtils;
 import jexer.event.TCommandEvent;
 import jexer.event.TKeypressEvent;
 import jexer.event.TMenuEvent;
@@ -886,10 +887,11 @@ public class TWindow extends TWidget {
             true);
 
         // Draw the title
-        int titleLeft = (getWidth() - title.length() - 2) / 2;
+        int titleLength = StringUtils.width(title);
+        int titleLeft = (getWidth() - titleLength - 2) / 2;
         putCharXY(titleLeft, 0, ' ', border);
-        putStringXY(titleLeft + 1, 0, title);
-        putCharXY(titleLeft + title.length() + 1, 0, ' ', border);
+        putStringXY(titleLeft + 1, 0, title, border);
+        putCharXY(titleLeft + titleLength + 1, 0, ' ', border);
 
         if (isActive()) {
 
index 3149e68c282b3168bf5ed6cb78e29762bd06ee6e..9af633dbac645be3198a27935590d6145143b9cc 100644 (file)
@@ -523,7 +523,7 @@ public class LogicalScreen implements Screen {
         for (int j = 0; j < str.length(); j++) {
             char ch = str.charAt(j);
             putCharXY(i, y, ch, attr);
-            i++;
+            i += StringUtils.width(ch);
             if (i == width) {
                 break;
             }
@@ -544,7 +544,7 @@ public class LogicalScreen implements Screen {
         for (int j = 0; j < str.length(); j++) {
             char ch = str.charAt(j);
             putCharXY(i, y, ch);
-            i++;
+            i += StringUtils.width(ch);
             if (i == width) {
                 break;
             }