diff options
Diffstat (limited to 'src/com/android/terminal/TerminalView.java')
-rw-r--r-- | src/com/android/terminal/TerminalView.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/com/android/terminal/TerminalView.java b/src/com/android/terminal/TerminalView.java index ea5e1b1..79b5bb4 100644 --- a/src/com/android/terminal/TerminalView.java +++ b/src/com/android/terminal/TerminalView.java @@ -59,16 +59,28 @@ public class TerminalView extends View { private TerminalClient mClient = new TerminalClient() { @Override public void damage(int startRow, int endRow, int startCol, int endCol) { + Log.d(TAG, "damage(" + startRow + ", " + endRow + ", " + startCol + ", " + endCol + ")"); + + // Invalidate region on screen final int top = startRow * mCharHeight; final int bottom = (endRow + 1) * mCharHeight; final int left = startCol * mCharWidth; final int right = (endCol + 1) * mCharWidth; - - // Invalidate region on screen postInvalidate(left, top, right, bottom); } @Override + public void moveRect(int destStartRow, int destEndRow, int destStartCol, int destEndCol, + int srcStartRow, int srcEndRow, int srcStartCol, int srcEndCol) { + // Treat as normal damage and perform full redraw + final int startRow = Math.min(destStartRow, srcStartRow); + final int endRow = Math.max(destEndRow, srcEndRow); + final int startCol = Math.min(destStartCol, srcStartCol); + final int endCol = Math.max(destEndCol, srcEndCol); + damage(startRow, endRow, startCol, endCol); + } + + @Override public void bell() { Log.i(TAG, "DING!"); } @@ -197,8 +209,6 @@ public class TerminalView extends View { } } - mTerm.flushDamage(); - final long delta = SystemClock.elapsedRealtime() - start; Log.d(TAG, "onDraw() took " + delta + "ms"); } |