diff options
| -rw-r--r-- | src/ui_elements/TextEditor.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ui_elements/TextEditor.c b/src/ui_elements/TextEditor.c index 1d35612..13a13a6 100644 --- a/src/ui_elements/TextEditor.c +++ b/src/ui_elements/TextEditor.c @@ -407,6 +407,14 @@ void DeleteChar(TextArea *ta) { EnsureCursorIsInFrame(ta); } + +void DeleteCharAfter(TextArea *ta) { + if (ta == NULL) return; + if (ta->CursorPosition.x == ta->CurrentNode->len && ta->CurrentNode->NextNode == NULL) return; + MoveCursorRight(ta); + DeleteChar(ta); +} + TextArea *CreateTextAreaFromText(TextAreaDisplayParams *DisplayParams, char *text) { if (DisplayParams == NULL || text == NULL) return NULL; TextArea *outp = CreateTextArea(DisplayParams); @@ -492,6 +500,7 @@ void HandleControlComands(TextArea *ta) { if (IsKeyPressedFix(KEY_P)) MoveCursorUp(ta); if (IsKeyPressedFix(KEY_A)) MoveCursorHome(ta); if (IsKeyPressedFix(KEY_E)) MoveCursorEnd(ta); + if (IsKeyPressedFix(KEY_D)) DeleteCharAfter(ta); if (IsKeyPressedFix(KEY_O)) { BreakLine(ta); MoveCursorUp(ta); @@ -525,6 +534,7 @@ void HandleKeyboard(TextArea *ta) { } if (IsKeyPressedFix(KEY_BACKSPACE)) DeleteChar(ta); + if (IsKeyPressedFix(KEY_DELETE)) DeleteCharAfter(ta); if (IsKeyPressedFix(KEY_ENTER)) BreakLine(ta); if (IsKeyPressedFix(KEY_LEFT)) MoveCursorLeft(ta); if (IsKeyPressedFix(KEY_RIGHT)) MoveCursorRight(ta); |
