# HG changeset patch # User Carl Byington # Date 1404338586 25200 # Node ID 61a90cb1938d9c370449f4cd1248e8b223f60ef5 # Parent c51bcf9f05165b7c307960b3a410fb005d5ef882 setfield positions the cursor properly as if the characters were typed diff -r c51bcf9f0516 -r 61a90cb1938d src/com/five_ten_sg/connectbot/transport/TN5250.java --- a/src/com/five_ten_sg/connectbot/transport/TN5250.java Wed Jul 02 14:46:16 2014 -0700 +++ b/src/com/five_ten_sg/connectbot/transport/TN5250.java Wed Jul 02 15:03:06 2014 -0700 @@ -193,13 +193,7 @@ } if (b == 121) { // special case y for testing - setField(17, 44, new char[0]); - setField(-1, -1, new char[] { '2', '1' }); - keyPressed(KEY_TAB, ' ', 0); - keyPressed(KEY_TAB, ' ', 0); - setField(-1, -1, new char[] { '4', '3' }); - setField(18, 44, new char[0]); - setField(-1, -1, new char[] { '6', '5' }); + setField(17, 43, new char[0]); return; } if (b == 122) { diff -r c51bcf9f0516 -r 61a90cb1938d src/org/tn5250j/framework/tn5250/Screen5250.java --- a/src/org/tn5250j/framework/tn5250/Screen5250.java Wed Jul 02 14:46:16 2014 -0700 +++ b/src/org/tn5250j/framework/tn5250/Screen5250.java Wed Jul 02 15:03:06 2014 -0700 @@ -2661,9 +2661,15 @@ if (l >= 0) { int position = l * numCols + c; - isInField(position, true); - cf = screenFields.getCurrentField(); - lastPos = cf.getStartPos(); + if (!isInField(position, true)) { + gotoFieldNext(); + isInField(); + cf = screenFields.getCurrentField(); + lastPos = cf.getStartPos(); + } + else { + lastPos = position; + } setDirty(lastPos); fireCursorChanged(); }