summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/terminal/Terminal.java10
-rw-r--r--src/com/android/terminal/TerminalCallbacks.java12
-rw-r--r--src/com/android/terminal/TerminalView.java18
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");
}