mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-12 15:48:35 -07:00
Input keyboard toggle hold for next key with space
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user