diff options
author | Kenny Root <kenny@the-b.org> | 2009-01-19 22:58:27 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-01-19 22:58:27 +0000 |
commit | 3cfb3df4c46af1e93d95326c65bacaff54d63f5e (patch) | |
tree | 0d91243808e1fa324f18ad79c5cd21a73611fdb3 /src | |
parent | 9f8bc50a95c4593b413baa87254e5c50e68ee840 (diff) | |
download | connectbot-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.java | 4 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 20 |
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() { } |