diff options
author | Kenny Root <kenny@the-b.org> | 2009-08-13 22:05:54 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-08-13 22:05:54 +0000 |
commit | 8be636afaee6decbf7e7465870e2296c343b36c4 (patch) | |
tree | ed8e8d850f2e1d2908b8dd41a89bd1f02fbb9f6c /src | |
parent | 1a47eab6b2692a880cea5c7df343ecf5655c1292 (diff) | |
download | connectbot-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
Diffstat (limited to 'src')
-rw-r--r-- | src/de/mud/terminal/vt320.java | 20 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 3 |
2 files changed, 16 insertions, 7 deletions
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) |