ESPTerm - ESP8266 terminal emulator. Branches: [master] patches, [work] next release
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
espterm-firmware/html_orig/jssrc/soft_keyboard.js

38 lines
952 B

$.ready(() => {
const input = qs('#softkb-input')
let keyboardOpen = false
let updateInputPosition = function () {
if (!keyboardOpen) return
let [x, y] = Screen.gridToScreen(Screen.cursor.x, Screen.cursor.y)
input.style.transform = `translate(${x}px, ${y}px)`
}
input.addEventListener('focus', () => {
keyboardOpen = true
updateInputPosition()
})
input.addEventListener('blur', () => (keyboardOpen = false))
Screen.on('cursor-moved', updateInputPosition)
window.kbOpen = function openSoftKeyboard (open) {
keyboardOpen = open
updateInputPosition()
if (open) input.focus()
else input.blur()
}
input.addEventListener('keydown', e => {
if (e.key === 'Backspace') {
e.preventDefault()
e.stopPropagation()
Input.sendString('\b')
}
})
input.addEventListener('keypress', e => {
e.stopPropagation()
})
Screen.on('open-soft-keyboard', () => input.focus())
})