diff options
Diffstat (limited to 'src/ui_elements/TextEditor.c')
| -rw-r--r-- | src/ui_elements/TextEditor.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ui_elements/TextEditor.c b/src/ui_elements/TextEditor.c index ebc8671..fa85443 100644 --- a/src/ui_elements/TextEditor.c +++ b/src/ui_elements/TextEditor.c @@ -68,11 +68,13 @@ bool AddSpaceDetermined(TextNode *base, size_t additional_space) { void AppendTextToNode(TextNode *base, char *new_text) { if (base == NULL || new_text == NULL) return; size_t len = strlen(base->text); + size_t new_len = strlen(new_text); /// >= and not > because it needs a \0 - if (len + strlen(new_text) >= base->cap) { + if (len + new_len >= base->cap) { if (!AddSpace(base)) return; } strcpy(base->text + len, new_text); + base->len += new_len; } TextArea *CreateTextArea() { @@ -367,6 +369,10 @@ void HandleKeyboard(TextArea *ta) { if (IsKeyPressedFix(KEY_RIGHT)) MoveCursorRight(ta); if (IsKeyPressedFix(KEY_DOWN)) MoveCursorDown(ta); if (IsKeyPressedFix(KEY_UP)) MoveCursorUp(ta); + if (IsKeyPressedFix(KEY_TAB)) { + for (int i = 0; i < TAB_WIDTH; i++) + InsertChar(ta, ' '); + }; if (IsKeyPressedFix(KEY_HOME)) MoveCursorHome(ta); if (IsKeyPressedFix(KEY_END)) MoveCursorEnd(ta); |
