From 8be636afaee6decbf7e7465870e2296c343b36c4 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Thu, 13 Aug 2009 22:05:54 +0000 Subject: 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 --- AndroidManifest.xml | 2 +- src/de/mud/terminal/vt320.java | 20 ++++++++++++++++---- 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 @@ + android:versionCode="191"> 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) -- cgit v1.2.3