diff --git a/src/text-input-node.c b/src/text-input-node.c index 731450d..1b6293d 100644 --- a/src/text-input-node.c +++ b/src/text-input-node.c @@ -43,10 +43,10 @@ int text_input_handle(UINode *node, enum UIEvent ev, size_t d, void *p) break; } case XKB_KEY_Delete: { - if (n->text_cursor_index > 0 && n->text_cursor_index + 1 <= n->text.size) { - ui_string_delete(&n->text, n->text_cursor_index + 1, 1); + if (n->text.size > 0 && n->text_cursor_index < n->text.size) { + ui_string_delete(&n->text, n->text_cursor_index, 1); } - if (n->text_cursor_index > n->text.size) { + if (n->text_cursor_index > 0 && n->text_cursor_index > n->text.size) { n->text_cursor_index = n->text.size - 1; } break;