diff --git a/xP/public/xP.js b/xP/public/xP.js index dba8a99..19a769a 100644 --- a/xP/public/xP.js +++ b/xP/public/xP.js @@ -163,13 +163,22 @@ rpc.addEventListener('BufferRemove', event => { }) rpc.addEventListener('BufferActivate', event => { - let e = event.detail + let e = event.detail, b = buffers.get(e.bufferName) + let old = buffers.get(bufferCurrent) bufferCurrent = e.bufferName - setTimeout(() => { - let el = document.getElementById('input') - if (el !== null) - el.focus() - }) + + let textarea = document.getElementById('input') + if (textarea === null) + return + + textarea.focus() + if (old !== undefined) + old.input = textarea.value + + if (b !== undefined) + textarea.value = b.input || '' + else + textarea.value = '' }) rpc.addEventListener('BufferLine', event => { @@ -388,8 +397,6 @@ function onKeyDown(event) { event.preventDefault() } -// TODO: This should be remembered across buffer switches, -// and we'll probably have to intercept /all/ key presses. let Input = { view: vnode => { return m('textarea#input', {