X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjexer%2Fio%2FScreen.java;h=a0497b8f1756dbd34fa55c344208ea705ee53aab;hb=091d8a06c7f9f91c2a15c9350b6502cf4c10f5a3;hp=e3f72191809b73565397c98c8b8523c800b9f8be;hpb=92554d64c21c6a477fd23a06ca3a64a542b622a3;p=fanfix.git diff --git a/src/jexer/io/Screen.java b/src/jexer/io/Screen.java index e3f7219..a0497b8 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. * @@ -633,8 +644,6 @@ public abstract class Screen { final CellAttributes border, final CellAttributes background, final int borderType, final boolean shadow) { - int boxTop = top; - int boxLeft = left; int boxWidth = right - left; int boxHeight = bottom - top;