diff --git a/xP/public/xP.js b/xP/public/xP.js index af20c2b..dba8a99 100644 --- a/xP/public/xP.js +++ b/xP/public/xP.js @@ -165,8 +165,11 @@ rpc.addEventListener('BufferRemove', event => { rpc.addEventListener('BufferActivate', event => { let e = event.detail bufferCurrent = e.bufferName - // TODO: Somehow scroll to the end of it immediately. - // TODO: Focus the textarea. + setTimeout(() => { + let el = document.getElementById('input') + if (el !== null) + el.focus() + }) }) rpc.addEventListener('BufferLine', event => { @@ -306,6 +309,19 @@ let Content = { } let Buffer = { + oncreate: vnode => { + if (vnode.dom === undefined) + return + + let el = vnode.dom.children[1] + if (el !== null) + el.scrollTop = el.scrollHeight + }, + + onupdate: vnode => { + Buffer.oncreate(vnode) + }, + view: vnode => { let lines = [] let b = buffers.get(bufferCurrent) @@ -376,7 +392,7 @@ function onKeyDown(event) { // and we'll probably have to intercept /all/ key presses. let Input = { view: vnode => { - return m('textarea', { + return m('textarea#input', { rows: 1, onkeydown: onKeyDown, })