X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fio%2FScreen.java;h=1ecc4b185e0ee1eb8352211882c55bb39003d27b;hb=bd8d51fa0a33d6d27dba088c57791e1650512fc0;hp=e3f72191809b73565397c98c8b8523c800b9f8be;hpb=bb35d91958450cc7152d2063f1d6cd34c15e2a3d;p=fanfix.git diff --git a/src/jexer/io/Screen.java b/src/jexer/io/Screen.java index e3f7219..1ecc4b1 100644 --- a/src/jexer/io/Screen.java +++ b/src/jexer/io/Screen.java @@ -183,7 +183,7 @@ public abstract class Screen { /** * When true, logical != physical. */ - protected boolean dirty; + protected volatile boolean dirty; /** * Get dirty flag. @@ -225,7 +225,6 @@ public abstract class Screen { * @return attributes at (x, y) */ public final CellAttributes getAttrXY(final int x, final int y) { - CellAttributes attr = new CellAttributes(); if ((x >= 0) && (x < width) && (y >= 0) && (y < height)) { attr.setTo(logical[x][y]); @@ -591,12 +590,24 @@ public abstract class Screen { } /** - * Force the screen to be fully cleared and redrawn on the next flush(). + * Clear the logical screen. */ public final void clear() { reset(); } + /** + * Clear the physical screen. + */ + public final void clearPhysical() { + dirty = true; + for (int row = 0; row < height; row++) { + for (int col = 0; col < width; col++) { + physical[col][row].reset(); + } + } + } + /** * Draw a box with a border and empty background. *