aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-08-13 22:05:54 +0000
committerKenny Root <kenny@the-b.org>2009-08-13 22:05:54 +0000
commit8be636afaee6decbf7e7465870e2296c343b36c4 (patch)
treeed8e8d850f2e1d2908b8dd41a89bd1f02fbb9f6c
parent1a47eab6b2692a880cea5c7df343ecf5655c1292 (diff)
downloadconnectbot-8be636afaee6decbf7e7465870e2296c343b36c4.tar.gz
connectbot-8be636afaee6decbf7e7465870e2296c343b36c4.tar.bz2
connectbot-8be636afaee6decbf7e7465870e2296c343b36c4.zip
Pin the cursor column to terminal width on resize
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@395 df292f66-193f-0410-a5fc-6d59da041ff2
-rw-r--r--AndroidManifest.xml2
-rw-r--r--src/de/mud/terminal/vt320.java20
-rw-r--r--src/org/connectbot/service/TerminalBridge.java3
3 files changed, 17 insertions, 8 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f6dd0f2..999cd35 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.connectbot"
android:versionName="1.6-dev"
- android:versionCode="190">
+ android:versionCode="191">
<application
android:icon="@drawable/icon"
diff --git a/src/de/mud/terminal/vt320.java b/src/de/mud/terminal/vt320.java
index 0fdaf16..1ebc98c 100644
--- a/src/de/mud/terminal/vt320.java
+++ b/src/de/mud/terminal/vt320.java
@@ -139,7 +139,6 @@ public abstract class vt320 extends VDUBuffer implements VDUInput {
@Override
public void setScreenSize(int c, int r, boolean broadcast) {
int oldrows = height;
- //int oldcols = width;
if (debug>2) {
if (debugStr == null)
@@ -158,11 +157,24 @@ public void setScreenSize(int c, int r, boolean broadcast) {
super.setScreenSize(c,r,false);
- /* Tricky, since the VDUBuffer works strangely. */
- if (r > oldrows) {
- setCursorPosition(C, R + (r - oldrows));
+ boolean cursorChanged = false;
+
+ // Don't let the cursor go off the screen.
+ if (C >= c) {
+ C = c - 1;
+ cursorChanged = true;
+ }
+
+ if (R >= r) {
+ R = r - 1;
+ cursorChanged = true;
+ }
+
+ if (cursorChanged) {
+ setCursorPosition(C, R);
redraw();
}
+
if (broadcast) {
setWindowSize(c, r); /* broadcast up */
}
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 1880d26..6164791 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -999,9 +999,6 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
synchronized (buffer) {
int prevRow = buffer.getCursorRow();
buffer.setScreenSize(columns, rows, true);
-
- // Work around weird vt320.java behavior where cursor is an offset from the bottom??
- buffer.setCursorPosition(buffer.getCursorColumn(), prevRow);
}
if(transport != null)