X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjexer%2Fbackend%2FECMA48Terminal.java;h=ea99a0b79eeaf7adb24fe8c2e7a7f01b4c99f45c;hb=be72cb5ccbd42fe304c0acafc380c5636f0d03a2;hp=78aae45c63b315d2c40a340f60071dbdd527f0be;hpb=3e0743556d1f31723a11a6019b5c2b018b4b2104;p=fanfix.git diff --git a/src/jexer/backend/ECMA48Terminal.java b/src/jexer/backend/ECMA48Terminal.java index 78aae45..ea99a0b 100644 --- a/src/jexer/backend/ECMA48Terminal.java +++ b/src/jexer/backend/ECMA48Terminal.java @@ -40,7 +40,6 @@ import java.io.PrintWriter; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.LinkedList; @@ -712,11 +711,6 @@ public final class ECMA48Terminal extends LogicalScreen * physical screen */ private String flushString() { - if (!dirty) { - assert (!reallyCleared); - return ""; - } - CellAttributes attr = null; StringBuilder sb = new StringBuilder(); @@ -729,7 +723,6 @@ public final class ECMA48Terminal extends LogicalScreen flushLine(y, sb, attr); } - dirty = false; reallyCleared = false; String result = sb.toString(); @@ -746,6 +739,8 @@ public final class ECMA48Terminal extends LogicalScreen public void flushPhysical() { String result = flushString(); if ((cursorVisible) + && (cursorY >= 0) + && (cursorX >= 0) && (cursorY <= height - 1) && (cursorX <= width - 1) ) { @@ -1104,10 +1099,10 @@ public final class ECMA48Terminal extends LogicalScreen * @param queue list to append new events to */ private void getIdleEvents(final List queue) { - Date now = new Date(); + long nowTime = System.currentTimeMillis(); // Check for new window size - long windowSizeDelay = now.getTime() - windowSizeTime; + long windowSizeDelay = nowTime - windowSizeTime; if (windowSizeDelay > 1000) { sessionInfo.queryWindowSize(); int newWidth = sessionInfo.getWindowWidth(); @@ -1121,12 +1116,12 @@ public final class ECMA48Terminal extends LogicalScreen newWidth, newHeight); queue.add(event); } - windowSizeTime = now.getTime(); + windowSizeTime = nowTime; } // ESCDELAY type timeout if (state == ParseState.ESCAPE) { - long escDelay = now.getTime() - escapeTime; + long escDelay = nowTime - escapeTime; if (escDelay > 100) { // After 0.1 seconds, assume a true escape character queue.add(controlChar((char)0x1B, false)); @@ -1190,9 +1185,9 @@ public final class ECMA48Terminal extends LogicalScreen private void processChar(final List events, final char ch) { // ESCDELAY type timeout - Date now = new Date(); + long nowTime = System.currentTimeMillis(); if (state == ParseState.ESCAPE) { - long escDelay = now.getTime() - escapeTime; + long escDelay = nowTime - escapeTime; if (escDelay > 250) { // After 0.25 seconds, assume a true escape character events.add(controlChar((char)0x1B, false)); @@ -1212,7 +1207,7 @@ public final class ECMA48Terminal extends LogicalScreen if (ch == 0x1B) { state = ParseState.ESCAPE; - escapeTime = now.getTime(); + escapeTime = nowTime; return; }