Input keyboard toggle hold for next key with space

This commit is contained in:
Willy-JL
2023-08-13 03:06:24 +02:00
parent 7504e58244
commit 1e59764c20

View File

@@ -54,8 +54,8 @@ static void input_cli_keyboard(Cli* cli, FuriString* args, Input* input) {
printf("\r\nUsage:\r\n");
printf("\tMove = Arrows\r\n");
printf("\tOk = Enter\r\n");
printf("\tHold Ok = Shift + Enter\r\n");
printf("\tBack = Backspace\r\n");
printf("\tToggle hold for next key = Space\r\n");
printf("\r\nIn Keyboard:\r\n");
printf("\tType normally on PC Keyboard\r\n");
@@ -65,11 +65,11 @@ static void input_cli_keyboard(Cli* cli, FuriString* args, Input* input) {
printf("\tSave Text = Enter\r\n");
printf("\r\nPress CTRL+C to stop\r\n");
bool hold = false;
while(cli_is_connected(cli)) {
char in_chr = cli_getc(cli);
if(in_chr == CliSymbolAsciiETX) break;
InputKey send_key = InputKeyMAX;
InputType send_type = InputTypeShort;
ViewPort* view_port = gui->ongoing_input_view_port;
if(view_port && view_port->input_callback == view_dispatcher_input_callback) {
@@ -102,9 +102,9 @@ static void input_cli_keyboard(Cli* cli, FuriString* args, Input* input) {
case CliSymbolAsciiDel: // (putty/picocom) Backspace = Back
send_key = InputKeyBack;
break;
case 0x4d: // Shift Enter = Hold Ok
send_type = InputTypeLong;
/* fall through */
case CliSymbolAsciiSpace: // Space = Toggle hold next key
hold = !hold;
break;
case CliSymbolAsciiCR: // Enter = Ok
send_key = InputKeyOk;
break;
@@ -115,7 +115,8 @@ static void input_cli_keyboard(Cli* cli, FuriString* args, Input* input) {
}
if(send_key != InputKeyMAX) {
input_fake_event(input, send_key, send_type);
input_fake_event(input, send_key, hold ? InputTypeLong : InputTypeShort);
hold = false;
}
}