mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-25 03:29:58 -07:00
Rework symbol keyboard (fix illegal characters)
This commit is contained in:
@@ -102,16 +102,15 @@ static const TextInputKey keyboard_keys_row_3[] = {
|
||||
};
|
||||
|
||||
static const TextInputKey symbol_keyboard_keys_row_1[] = {
|
||||
{'!', 1, 8},
|
||||
{'"', 10, 8},
|
||||
{'#', 19, 8},
|
||||
{'$', 28, 8},
|
||||
{'%', 37, 8},
|
||||
{'&', 46, 8},
|
||||
{'/', 55, 8},
|
||||
{'(', 64, 8},
|
||||
{')', 73, 8},
|
||||
{'=', 82, 8},
|
||||
{'!', 2, 8},
|
||||
{'@', 12, 8},
|
||||
{'#', 22, 8},
|
||||
{'$', 32, 8},
|
||||
{'%', 42, 8},
|
||||
{'^', 52, 8},
|
||||
{'&', 62, 8},
|
||||
{'(', 71, 8},
|
||||
{')', 81, 8},
|
||||
{'0', 91, 8},
|
||||
{'1', 100, 8},
|
||||
{'2', 110, 8},
|
||||
@@ -119,15 +118,14 @@ static const TextInputKey symbol_keyboard_keys_row_1[] = {
|
||||
};
|
||||
|
||||
static const TextInputKey symbol_keyboard_keys_row_2[] = {
|
||||
{'{', 1, 20},
|
||||
{'}', 10, 20},
|
||||
{'[', 19, 20},
|
||||
{']', 28, 20},
|
||||
{'<', 37, 20},
|
||||
{'>', 46, 20},
|
||||
{'\\', 55, 20},
|
||||
{'@', 64, 20},
|
||||
{'?', 73, 20},
|
||||
{'~', 2, 20},
|
||||
{'+', 12, 20},
|
||||
{'-', 22, 20},
|
||||
{'=', 32, 20},
|
||||
{'[', 42, 20},
|
||||
{']', 52, 20},
|
||||
{'{', 62, 20},
|
||||
{'}', 72, 20},
|
||||
{BACKSPACE_KEY, 82, 12},
|
||||
{'4', 100, 20},
|
||||
{'5', 110, 20},
|
||||
@@ -136,14 +134,11 @@ static const TextInputKey symbol_keyboard_keys_row_2[] = {
|
||||
|
||||
static const TextInputKey symbol_keyboard_keys_row_3[] = {
|
||||
{SWITCH_KEYBOARD_KEY, 1, 23},
|
||||
{'+', 13, 32},
|
||||
{'`', 21, 32},
|
||||
{'\'', 28, 32},
|
||||
{'^', 36, 32},
|
||||
{'*', 44, 32},
|
||||
{',', 52, 32},
|
||||
{'.', 59, 32},
|
||||
{'-', 67, 32},
|
||||
{'.', 15, 32},
|
||||
{',', 29, 32},
|
||||
{';', 41, 32},
|
||||
{'`', 53, 32},
|
||||
{'\'', 65, 32},
|
||||
{ENTER_KEY, 74, 23},
|
||||
{'7', 100, 32},
|
||||
{'8', 110, 32},
|
||||
@@ -291,7 +286,7 @@ static void text_input_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
canvas_draw_str(canvas, start_pos, 22, "...");
|
||||
start_pos += 6;
|
||||
needed_string_width -= 8;
|
||||
for(uint off = 0;
|
||||
for(uint32_t off = 0;
|
||||
!furi_string_empty(str) && canvas_string_width(canvas, cstr) > needed_string_width &&
|
||||
off < model->cursor_pos;
|
||||
off++) {
|
||||
@@ -377,11 +372,16 @@ static void text_input_handle_up(TextInput* text_input, TextInputModel* model) {
|
||||
UNUSED(text_input);
|
||||
if(model->selected_row > 0) {
|
||||
model->selected_row--;
|
||||
if(model->selected_column >
|
||||
get_row_size(keyboards[model->selected_keyboard], model->selected_row) - 6 &&
|
||||
model->selected_row == 0) {
|
||||
if(model->selected_row == 0 &&
|
||||
model->selected_column > get_row_size(keyboards[model->selected_keyboard], model->selected_row) - 6) {
|
||||
model->selected_column = model->selected_column + 1;
|
||||
}
|
||||
if(model->selected_row == 1 && model->selected_keyboard == symbol_keyboard.keyboard_index) {
|
||||
if(model->selected_column > 5)
|
||||
model->selected_column += 2;
|
||||
else if(model->selected_column > 1)
|
||||
model->selected_column += 1;
|
||||
}
|
||||
} else {
|
||||
model->cursor_select = true;
|
||||
model->clear_default_text = false;
|
||||
@@ -394,11 +394,16 @@ static void text_input_handle_down(TextInput* text_input, TextInputModel* model)
|
||||
model->cursor_select = false;
|
||||
} else if(model->selected_row < keyboard_row_count - 1) {
|
||||
model->selected_row++;
|
||||
if(model->selected_column >
|
||||
get_row_size(keyboards[model->selected_keyboard], model->selected_row) - 4 &&
|
||||
model->selected_row == 1) {
|
||||
if(model->selected_row == 1 &&
|
||||
model->selected_column > get_row_size(keyboards[model->selected_keyboard], model->selected_row) - 4) {
|
||||
model->selected_column = model->selected_column - 1;
|
||||
}
|
||||
if(model->selected_row == 2 && model->selected_keyboard == symbol_keyboard.keyboard_index) {
|
||||
if(model->selected_column > 7)
|
||||
model->selected_column -= 2;
|
||||
else if(model->selected_column > 1)
|
||||
model->selected_column -= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user