# HG changeset patch # User Carl Byington # Date 1404441247 25200 # Node ID 561caa2f7c170ed096e25e4784f8ca0617090c73 # Parent 2c5c90e53c3378bb79d137058404e60a0442efbe more testing on cursor movement diff -r 2c5c90e53c33 -r 561caa2f7c17 src/com/five_ten_sg/connectbot/transport/TN5250.java --- a/src/com/five_ten_sg/connectbot/transport/TN5250.java Thu Jul 03 09:00:23 2014 -0700 +++ b/src/com/five_ten_sg/connectbot/transport/TN5250.java Thu Jul 03 19:34:07 2014 -0700 @@ -181,6 +181,25 @@ } @Override public void write(int b) { + if (b == 120) { + // special case x for testing + setField(17, 40, new char[] { '1', '2' }); + setField(17, 44, new char[0]); + setField(-1, -1, new char[] { '3', '4' }); + setField(18, 40, new char[0]); + setField(-1, -1, new char[] { '5', '6' }); + return; + } + if (b == 121) { + // special case y for testing + setField(17, 43, new char[0]); + return; + } + if (b == 122) { + // special case z for testing + setField(17, 41, new char[0]); + return; + } if (controls.containsKey(b)) keyPressed(controls.get(b), ' ', 0); else screen52.sendKeys(new String(new byte[] {(byte)b})); testChanged(); diff -r 2c5c90e53c33 -r 561caa2f7c17 src/org/tn5250j/framework/tn5250/Screen5250.java --- a/src/org/tn5250j/framework/tn5250/Screen5250.java Thu Jul 03 09:00:23 2014 -0700 +++ b/src/org/tn5250j/framework/tn5250/Screen5250.java Thu Jul 03 19:34:07 2014 -0700 @@ -2660,16 +2660,8 @@ ScreenField cf; if (l >= 0) { - int position = l * numCols + c; - if (!isInField(position, true)) { - lastPos = position; - while (!isInField()) advancePos(); - cf = screenFields.getCurrentField(); - lastPos = cf.getStartPos(); - } - else { - lastPos = position; - } + lastPos = l * numCols + c; + while (!isInField()) advancePos(); setDirty(lastPos); fireCursorChanged(); }