Fix misinterpreted if statement
Build and Test a3270 / Build Android APK (push) Successful in 5m37s

This commit is contained in:
2026-09-28 04:18:51 +00:00
parent 4754732642
commit 3843e0fd13
@@ -221,8 +221,23 @@ fun TerminalView(
if (faPos >= 0) { if (faPos >= 0) {
val fa = buf.getDisplayCell(faPos)?.fa?.toInt()?.and(0xFF) ?: 0 val fa = buf.getDisplayCell(faPos)?.fa?.toInt()?.and(0xFF) ?: 0
if (faIsSelectable(fa) && !faIsZero(fa)) { if (faIsSelectable(fa) && !faIsZero(fa)) {
onLightPenSelect?.invoke(clickAddr) val size = buf.displayRows * buf.displayCols
isDetectable = true val desPos = if (size > 0) (faPos + 1) % size else -1
val desCell = if (desPos >= 0) buf.getDisplayCell(desPos) else null
val desAscii = desCell?.ucs4 ?: 0.toChar()
val desEbcdic = desCell?.ec?.toInt()?.and(0xFF) ?: 0
val isToggleField = (desEbcdic == 0x6F || desAscii == '?' || desAscii == '\uFF1F' ||
desEbcdic == 0x6E || desAscii == '>' || desAscii == '\uFF1E')
val isEnterField = (desEbcdic == 0x50 || desAscii == '&' || desAscii == '\uFF06')
// Automatic tap selection applies only to toggle (?/>) and enter (&) fields.
// Standard text fields (space/null designators) must not trigger light-pen selection
// so normal cursor positioning and editing work as expected.
if (isToggleField || isEnterField) {
onLightPenSelect?.invoke(clickAddr)
isDetectable = true
}
} }
} }
} }