diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/terminal/Terminal.java | 10 | ||||
-rw-r--r-- | src/com/android/terminal/TerminalCallbacks.java | 12 | ||||
-rw-r--r-- | src/com/android/terminal/TerminalView.java | 18 |
3 files changed, 23 insertions, 17 deletions
diff --git a/src/com/android/terminal/Terminal.java b/src/com/android/terminal/Terminal.java index 9701fab..ff325a8 100644 --- a/src/com/android/terminal/Terminal.java +++ b/src/com/android/terminal/Terminal.java @@ -50,6 +50,8 @@ public class Terminal { public interface TerminalClient { public void damage(int startRow, int endRow, int startCol, int endCol); + public void moveRect(int destStartRow, int destEndRow, int destStartCol, int destEndCol, + int srcStartRow, int srcEndRow, int srcStartCol, int srcEndCol); public void bell(); } @@ -70,13 +72,9 @@ public class Terminal { @Override public int moveRect(int destStartRow, int destEndRow, int destStartCol, int destEndCol, int srcStartRow, int srcEndRow, int srcStartCol, int srcEndCol) { - // TODO: arg, this isn't right if (mClient != null) { - 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); - mClient.damage(startRow, endRow, startCol, endCol); + mClient.moveRect(destStartRow, destEndRow, destStartCol, destEndCol, srcStartRow, + srcEndRow, srcStartCol, srcEndCol); } return 1; } diff --git a/src/com/android/terminal/TerminalCallbacks.java b/src/com/android/terminal/TerminalCallbacks.java index cafaec0..b449075 100644 --- a/src/com/android/terminal/TerminalCallbacks.java +++ b/src/com/android/terminal/TerminalCallbacks.java @@ -17,22 +17,20 @@ package com.android.terminal; public abstract class TerminalCallbacks { - public int damage(int start_row, int end_row, int start_col, int end_col) { + public int damage(int startRow, int endRow, int startCol, int endCol) { return 1; } - public int prescroll(int start_row, int end_row, int start_col, int end_col) { + public int prescroll(int startRow, int endRow, int startCol, int endCol) { return 1; } - public int moveRect(int dest_start_row, int dest_end_row, int dest_start_col, int dest_end_col, - int src_start_row, int src_end_row, int src_start_col, int src_end_col) { + public int moveRect(int destStartRow, int destEndRow, int destStartCol, int destEndCol, + int srcStartRow, int srcEndRow, int srcStartCol, int srcEndCol) { return 1; } - public int moveCursor(int dest_start_row, int dest_end_row, int dest_start_col, - int dest_end_col, int src_start_row, int src_end_row, int src_start_col, - int src_end_col, int visible) { + public int moveCursor(int posRow, int posCol, int oldPosRow, int oldPosCol, int visible) { return 1; } 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"); } |