summaryrefslogtreecommitdiff
path: root/Terminal/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Terminal/main.cpp')
-rw-r--r--Terminal/main.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/Terminal/main.cpp b/Terminal/main.cpp
index 98b29047dd..2fee6aaa4c 100644
--- a/Terminal/main.cpp
+++ b/Terminal/main.cpp
@@ -12,6 +12,7 @@
#include <sys/select.h>
#include <LibC/gui.h>
#include "Terminal.h"
+#include <Kernel/KeyCode.h>
static void make_shell(int ptm_fd)
{
@@ -128,7 +129,22 @@ int main(int, char**)
ch = 0x1c;
}
}
- write(ptm_fd, &ch, 1);
+ switch (event.key.key) {
+ case KeyCode::Key_Up:
+ write(ptm_fd, "\033[A", 3);
+ break;
+ case KeyCode::Key_Down:
+ write(ptm_fd, "\033[B", 3);
+ break;
+ case KeyCode::Key_Left:
+ write(ptm_fd, "\033[C", 3);
+ break;
+ case KeyCode::Key_Right:
+ write(ptm_fd, "\033[D", 3);
+ break;
+ default:
+ write(ptm_fd, &ch, 1);
+ }
} else if (event.type == GUI_Event::Type::WindowActivated) {
terminal.set_in_active_window(true);
} else if (event.type == GUI_Event::Type::WindowDeactivated) {