diff --git a/jssrc/soft_keyboard.js b/jssrc/soft_keyboard.js index 63d2c2c..4058379 100644 --- a/jssrc/soft_keyboard.js +++ b/jssrc/soft_keyboard.js @@ -56,11 +56,15 @@ window.initSoftKeyboard = function (screen) { input.addEventListener('keydown', e => { if (e.key === 'Unidentified') return - e.preventDefault() input.value = '' - if (e.key === 'Backspace') Input.sendString('\b') - else if (e.key === 'Enter') Input.sendString('\x0d') + if (e.key === 'Backspace') { + e.preventDefault() + Input.sendString('\b') + } else if (e.key === 'Enter') { + e.preventDefault() + Input.sendString('\x0d') + } }) input.addEventListener('input', e => { @@ -69,10 +73,12 @@ window.initSoftKeyboard = function (screen) { if (e.isComposing) { sendInputDelta(e.data) } else { - if (e.data) Input.sendString(e.data) + if (e.inputType === 'insertCompositionText') Input.sendString(e.data) else if (e.inputType === 'deleteContentBackward') { lastCompositionString = '' sendInputDelta('') + } else if (e.inputType === 'insertText') { + // this is a sane event, which means the keypress handler will get it } } }) @@ -80,12 +86,14 @@ window.initSoftKeyboard = function (screen) { input.addEventListener('compositionstart', e => { lastCompositionString = '' compositing = true + console.log('compositionstart') }) input.addEventListener('compositionend', e => { lastCompositionString = '' compositing = false input.value = '' + console.log('compositionend') }) screen.on('open-soft-keyboard', () => input.focus())