summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui_elements/TextEditor.c10
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);