From 7ee527f792c6a6c11fa257d0c66633de13f6a5b3 Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Tue, 30 Jan 2024 13:40:15 -0500 Subject: web-keyboards: Niceties Spaces between keypresses. Don't show keypresses from before page render. Don't double up keypresses (only count keydowns). --- virtual-programs/web-keyboards.folk | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'virtual-programs') diff --git a/virtual-programs/web-keyboards.folk b/virtual-programs/web-keyboards.folk index a3a4435d..560186e7 100644 --- a/virtual-programs/web-keyboards.folk +++ b/virtual-programs/web-keyboards.folk @@ -9,7 +9,7 @@ When the keyboards are /keyboards/ { [join [lmap kb $keyboards { subst {
$kb
-

+
} }] "\n"] @@ -23,14 +23,16 @@ When the keyboards are /keyboards/ { ws.onopen = () => { document.getElementById('status').innerHTML = "Connnected"; send(` - Assert when keyboard /kb/ claims key /k/ is /t/ with modifiers /m/ timestamp /ts/ {{chan kb k t m ts} { - ::websocket::send \$chan text "\$kb||\$k" + Assert when keyboard /kb/ claims key /k/ is down with modifiers /m/ timestamp /ts/ {{chan kb k m ts} { + if {\$ts > [clock milliseconds]} { + ::websocket::send \$chan text "\$kb||\$k" + } }} with environment \[list \$chan] `); }; ws.onclose = window.onbeforeunload = () => { document.getElementById('status').innerHTML = "Disconnnected"; - send(`Retract when keyboard /kb/ claims key /k/ is /t/ with modifiers /m/ timestamp /ts/ /anything/ with environment \[list \$chan]`) + send(`Retract when keyboard /kb/ claims key /k/ is down with modifiers /m/ timestamp /ts/ /anything/ with environment \[list \$chan]`) setTimeout(() => { wsConnect(); }, 1000); }; ws.onerror = (err) => { @@ -40,7 +42,7 @@ When the keyboards are /keyboards/ { } ws.onmessage = (msg) => { const \[kb, key] = msg.data.split("||"); - document.getElementById(kb + "-presses").innerText += key; + document.getElementById(kb + "-presses").innerText += key + " "; } }; wsConnect(); -- cgit v1.2.3