diff --git a/web/platform.fs b/web/platform.fs index 63791f9..f835285 100644 --- a/web/platform.fs +++ b/web/platform.fs @@ -539,7 +539,15 @@ if (!globalObj.write) { } window.onkeypress = KeyPress; function KeyDown(e) { - if (e.keyCode == 8) { + if (e.ctrlKey) { + if (e.keyCode == 50) { + context.inbuffer.push(0); + } else if (e.keyCode >= 65 && e.keyCode <= 90) { + context.inbuffer.push(e.keyCode - 64); + } + e.preventDefault(); + return false; + } else if (e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 27) { context.cursor_time = new Date().getTime(); context.inbuffer.push(e.keyCode); e.preventDefault(); @@ -586,7 +594,7 @@ JSWORD: web-key-raw { -- n } if (context.inbuffer.length) { return context.inbuffer.shift(); } else { - return 0; + return -1; } ~ diff --git a/web/utils.fs b/web/utils.fs index 01f134f..90cd571 100644 --- a/web/utils.fs +++ b/web/utils.fs @@ -16,7 +16,7 @@ web definitions : web-type ( a n -- ) web-type-raw if pause then ; ' web-type is type -: web-key ( -- n ) begin pause web-key-raw dup if exit then drop again ; +: web-key ( -- n ) begin pause web-key-raw dup 0< 0= if exit then drop again ; ' web-key is key : web-key? ( -- f ) pause web-key?-raw ; ' web-key? is key?