on_screen_keyboard: arreglado bug al reducir el numero de columna o fila

This commit is contained in:
2023-08-18 08:04:13 +02:00
parent 477fc35e29
commit 2d03333463

View File

@@ -164,7 +164,7 @@ void OnScreenKeyboard::setLayout()
allChars = use_char_symbol ? allChars + char_symbol : allChars; allChars = use_char_symbol ? allChars + char_symbol : allChars;
layout.clear(); layout.clear();
for (int i = 0; i < allChars.length(); ++i) for (int i = 0; i < (int)allChars.length(); ++i)
{ {
key_t key; key_t key;
key.col = index_col; key.col = index_col;
@@ -208,7 +208,7 @@ void OnScreenKeyboard::checkInput()
// Disminuye en una columna la posición del cursor // Disminuye en una columna la posición del cursor
void OnScreenKeyboard::decCursorCol() void OnScreenKeyboard::decCursorCol()
{ {
cursor.col = cursor.col > 0 ? --cursor.col : columns - 1; cursor.col = cursor.col > 0 ? cursor.col - 1 : columns - 1;
} }
// Incrementa en una columna la posición del cursor // Incrementa en una columna la posición del cursor
@@ -220,7 +220,7 @@ void OnScreenKeyboard::incCursorCol()
// Disminuye en una fila la posición del cursor // Disminuye en una fila la posición del cursor
void OnScreenKeyboard::decCursorRow() void OnScreenKeyboard::decCursorRow()
{ {
cursor.row = cursor.row > 0 ? --cursor.row : rows - 1; cursor.row = cursor.row > 0 ? cursor.row - 1 : rows - 1;
} }
// Aumenta en una fila la posición del cursor // Aumenta en una fila la posición del cursor
@@ -243,7 +243,7 @@ void OnScreenKeyboard::updateCursor()
void OnScreenKeyboard::addChar() void OnScreenKeyboard::addChar()
{ {
const int pos = cursor.col + cursor.row * columns; const int pos = cursor.col + cursor.row * columns;
if (pos < layout.size()) if (pos < (int)layout.size())
output = output + layout.at(pos).caption; output = output + layout.at(pos).caption;
} }
@@ -271,7 +271,7 @@ void OnScreenKeyboard::render()
SDL_RenderCopy(renderer, textureCursor, nullptr, &cursor.dest); SDL_RenderCopy(renderer, textureCursor, nullptr, &cursor.dest);
const int pos = cursor.col + cursor.row * columns; const int pos = cursor.col + cursor.row * columns;
const string key = pos < layout.size() ? layout.at(pos).caption : ""; const string key = pos < (int)layout.size() ? layout.at(pos).caption : "";
text->writeDX(TXT_CENTER | TXT_COLOR, cursor.dest.x + cursor.dest.w / 2, cursor.dest.y + cursor.dest.w / 4, key, 1, {0, 255, 0}); text->writeDX(TXT_CENTER | TXT_COLOR, cursor.dest.x + cursor.dest.w / 2, cursor.dest.y + cursor.dest.w / 4, key, 1, {0, 255, 0});
text->write(dest.x + outputDest.x, dest.y + outputDest.y, output); text->write(dest.x + outputDest.x, dest.y + outputDest.y, output);
} }