diff options
| -rw-r--r-- | AndroidManifest.xml | 2 | ||||
| -rw-r--r-- | src/de/mud/terminal/vt320.java | 20 | ||||
| -rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 3 | 
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)  | 
