aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-01-19 22:58:27 +0000
committerKenny Root <kenny@the-b.org>2009-01-19 22:58:27 +0000
commit3cfb3df4c46af1e93d95326c65bacaff54d63f5e (patch)
tree0d91243808e1fa324f18ad79c5cd21a73611fdb3 /src
parent9f8bc50a95c4593b413baa87254e5c50e68ee840 (diff)
downloadconnectbot-3cfb3df4c46af1e93d95326c65bacaff54d63f5e.tar.gz
connectbot-3cfb3df4c46af1e93d95326c65bacaff54d63f5e.tar.bz2
connectbot-3cfb3df4c46af1e93d95326c65bacaff54d63f5e.zip
Move drawing into UI thread instead of SSH receiver thread
Diffstat (limited to 'src')
-rw-r--r--src/org/connectbot/TerminalView.java4
-rw-r--r--src/org/connectbot/service/TerminalBridge.java20
2 files changed, 9 insertions, 15 deletions
diff --git a/src/org/connectbot/TerminalView.java b/src/org/connectbot/TerminalView.java
index f7da203..5003190 100644
--- a/src/org/connectbot/TerminalView.java
+++ b/src/org/connectbot/TerminalView.java
@@ -90,6 +90,8 @@ public class TerminalView extends View {
@Override
public void onDraw(Canvas canvas) {
if(bridge.bitmap != null) {
+ // draw the bitmap
+ bridge.onDraw();
// draw the bridge bitmap if it exists
canvas.drawBitmap(bridge.bitmap, 0, 0, paint);
@@ -111,9 +113,7 @@ public class TerminalView extends View {
canvas.drawRect(left * bridge.charWidth, top * bridge.charHeight,
right * bridge.charWidth, bottom * bridge.charHeight, cursorPaint);
}
-
}
-
}
public void notifyUser(String message) {
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 8bb58ba..57e836c 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -515,8 +515,6 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
((vt320) buffer).putString(s);
}
-
- redraw();
}
/**
@@ -1121,12 +1119,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
return buffer;
}
- public synchronized void redraw() {
- // render our buffer only if we have a surface
- if(parent == null) return;
-
- int lines = 0;
-
+ public void onDraw() {
int fg, bg;
boolean entireDirty = buffer.update[0] || fullRedraw;
@@ -1135,8 +1128,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
// check if this line is dirty and needs to be repainted
// also check for entire-buffer dirty flags
- if(!entireDirty && !buffer.update[l + 1]) continue;
- lines++;
+ if (!entireDirty && !buffer.update[l + 1]) continue;
// reset dirty flag for this line
buffer.update[l + 1] = false;
@@ -1197,11 +1189,13 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal
// reset entire-buffer flags
buffer.update[0] = false;
fullRedraw = false;
-
- parent.postInvalidate();
-
}
+ public void redraw() {
+ if (parent != null)
+ parent.postInvalidate();
+ }
+
public void updateScrollBar() {
}