fix sixel not to listen to DECAWM
authorKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 4 Sep 2019 03:19:54 +0000 (22:19 -0500)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 4 Sep 2019 03:19:54 +0000 (22:19 -0500)
src/jexer/tterminal/ECMA48.java

index 7d03db1372aee15f9508000fbcd9585137ce41de..4bf7efbc3b6c10c4264f6a2288fc7803923628a4 100644 (file)
@@ -7023,19 +7023,20 @@ public class ECMA48 implements Runnable {
         int x0 = currentState.cursorX;
         for (int y = 0; y < cellRows; y++) {
             for (int x = 0; x < cellColumns; x++) {
-                printCharacter(' ');
-                cursorLeft(1, false);
-                if ((x == cellColumns - 1) || (y == cellRows - 1)) {
-                    // TODO: render text of current cell first, then image
-                    // over it.  For now, just copy the cell.
-                    DisplayLine line = display.get(currentState.cursorY);
-                    line.replace(currentState.cursorX, cells[x][y]);
-                } else {
-                    // Copy the image cell into the display.
-                    DisplayLine line = display.get(currentState.cursorY);
-                    line.replace(currentState.cursorX, cells[x][y]);
+                assert (currentState.cursorX <= rightMargin);
+
+                // TODO: Render text of current cell first, then image over
+                // it (accounting for blank pixels).  For now, just copy the
+                // cell.
+                DisplayLine line = display.get(currentState.cursorY);
+                line.replace(currentState.cursorX, cells[x][y]);
+
+                // If at the end of the visible screen, stop.
+                if (currentState.cursorX == rightMargin) {
+                    break;
                 }
-                cursorRight(1, false);
+                // Room for more image on the visible screen.
+                currentState.cursorX++;
             }
             linefeed();
             cursorPosition(currentState.cursorY, x0);