console: keep cursor at the end of command input

move the text cursor to the end of the command input when filling the
console command from history using JavsScript. this hopefully is more
convenient to most users and is similar to the behavior of a desktop
terminal.
This commit is contained in:
Bernhard Kirchen 2022-04-03 06:22:00 +02:00
parent 964f0bd62d
commit d2e8ca4a25
2 changed files with 18 additions and 9 deletions

View File

@ -2,7 +2,7 @@
// compressed by tools/unishox/compress-html-uncompressed.py
/////////////////////////////////////////////////////////////////////
const size_t HTTP_SCRIPT_CONSOL_SIZE = 952;
const size_t HTTP_SCRIPT_CONSOL_SIZE = 1046;
const char HTTP_SCRIPT_CONSOL_COMPRESSED[] PROGMEM = "\x33\xBF\xAF\x71\xF0\xE3\x3A\x8B\x44\x3E\x1C\x67\x51\x18\xA3\xA8\x2A\x2B\x1A\x7C"
"\x3E\x84\x3C\x18\x17\xC1\xD6\xE7\x20\x8E\xE8\xC3\xBC\x7B\x4C\xEF\xE8\x33\xAB\x0F"
"\x87\xD9\xF6\x78\x0C\x27\x7F\x2A\x2B\xD1\xAF\x05\xD1\xDD\x0A\x8E\xF0\x24\xCD\x31"
@ -30,12 +30,15 @@ const char HTTP_SCRIPT_CONSOL_COMPRESSED[] PROGMEM = "\x33\xBF\xAF\x71\xF0\xE3\x
"\x09\x83\xFC\x7D\x9D\x40\x89\xC7\xF3\x04\x1E\x37\x07\x02\x27\x38\xA7\x50\x67\xC6"
"\x74\x34\x66\x44\x1E\x08\xCF\x1A\x60\xEE\x9C\xBF\x9F\x0F\x84\x19\xFE\x3F\xC7\x31"
"\x9F\x0F\x84\x19\xDE\x3D\xA3\x8E\x96\x2E\xB0\x3C\x1A\x30\x27\x4C\xF8\x7D\xE1\x83"
"\x07\xD9\xE0\xF7\x1C\xBF\x9F\x0F\x84\x19\xDA\x3B\xA7\x6C\xED\x87\xC7\xE0\xA0\xC1"
"\x0B\x8C\xD3\xF4\x7E\x8E\xE8\x7C\x7C\x04\x49\x67\x78\xEA\x1C\x08\x5C\x80\x8A\x0C"
"\xF7\x83\xE3\xAC\xE4\x3D\xF3\xFC\x7F\x8F\xB3\xEC\xEF\x1E\x78\xCF\x87\xC2\x0C\xED"
"\x1D\xD3\x8C\xFC\x3A\xCE\xB2\x0F\x81\x07\x10\x38\xC8\x14\xF0\x83\x92\xCF\x87\xC2"
"\x0C\xFD\x1F\xA3\xBA\x08\x99\x89\xF8\x72\x23\xF4\x7E\x88\x50\x67\x41\x98\x30\xEE"
"\x9D\xE3\xA8\x50\x67\x41\x7C\x08\x3C\xAB\x82\x16\x38\x77\x8E\xA0\xF8\xF8\x71\x9D"
"\xE3\xDC\x77\x8F\x07\xB8\x87\xC2\x3B\xA2\x8E\xF1\xE0";
"\x07\xD9\xE0\x11\xB8\x10\x04\x4C\xD0\x71\xDE\x3D\xA3\x8E\x86\x30\x31\x7E\x3B\xA7"
"\x78\xF0\x38\xE9\xE7\x45\xE6\x13\x0E\xB7\x38\xBF\x7C\x3C\xCE\xE8\xE0\x41\xE3\xA0"
"\x10\xB8\xFA\x3A\x90\x24\xCC\x3B\xC7\x83\xDC\x75\x23\x8C\xEA\x3B\x84\x38\xEF\x1E"
"\x0F\x71\xCB\xF9\xF0\xF8\x41\x9D\xA3\xBA\x76\xCE\xD8\x7C\x7E\x0A\x0C\x10\xAE\x9F"
"\xA3\xF4\x77\x43\xE3\xE0\x22\x4B\x3B\xC7\x50\x21\x63\x87\xC1\x41\x9E\xF0\x7C\x75"
"\x9C\x87\xBE\x7F\x8F\xF1\xF6\x7D\x9D\xE3\xCF\x19\xF0\xF8\x41\x9D\xA3\xBA\x71\x9F"
"\x87\x59\xD6\x41\xF0\x20\xE2\x07\x19\x02\x9E\x10\x72\x59\xF0\xF8\x41\x9F\xA3\xF4"
"\x77\x41\x13\x31\x3F\x0E\x44\x7E\x8F\xD1\x0A\x0C\xE8\x33\x06\x1D\xD3\xBC\x75\x0A"
"\x0C\xE8\x2F\x81\x07\x9B\x50\x42\xC7\x0E\xF1\xD4\x1F\x1F\x0E\x33\xBC\x7B\x8E\xF1"
"\xE0\xF7\x10\xF8\x47\x74\x51\xDE\x3C\x1B";
#define HTTP_SCRIPT_CONSOL Decompress(HTTP_SCRIPT_CONSOL_COMPRESSED,HTTP_SCRIPT_CONSOL_SIZE).c_str()

View File

@ -45,7 +45,13 @@ const char HTTP_SCRIPT_CONSOL[] PROGMEM =
// "if(!(navigator.maxTouchPoints||'ontouchstart'in document.documentElement)){eb('c1').autocomplete='off';}" // No touch so stop browser autocomplete
"eb('c1').addEventListener('keydown',function(e){"
"var b=eb('c1'),c=e.keyCode;" // c1 = Console command id
"if(38==c||40==c){b.autocomplete='off';}" // ArrowUp or ArrowDown must be a keyboard so stop browser autocomplete
"if(38==c||40==c){" // ArrowUp or ArrowDown
"b.autocomplete='off';" // ArrowUp or ArrowDown must be a keyboard so stop browser autocomplete
"setTimeout(function(b){" // for best compatibility (chrome) we need to schedule this function
"b.focus();" // for best compatibility (chrome) we need to (re)focus the input element
"b.setSelectionRange(b.value.length, b.value.length);" // move cursor to the end of the command inserted from history
"}, 0, b);"
"}"
"38==c?(++cn>hc.length&&(cn=hc.length),b.value=hc[cn-1]||''):" // ArrowUp
"40==c?(0>--cn&&(cn=0),b.value=hc[cn-1]||''):" // ArrowDown
"13==c&&(hc.length>19&&hc.pop(),hc.unshift(b.value),cn=0)" // Enter, 19 = Max number -1 of commands in history