aboutsummaryrefslogtreecommitdiff
path: root/src/cInput.cpp
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2019-11-10 22:38:25 +0100
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2019-11-10 22:38:25 +0100
commitdd4a94412ce6bb7a76fed471568099a8df2d211c (patch)
treec819c8f4b08b1c5d14e8e46b2600d069d2bf6428 /src/cInput.cpp
parent5944d774a468ebc8b7c2d30c5f600bcf0ceb1532 (diff)
downloadtermgl-dd4a94412ce6bb7a76fed471568099a8df2d211c.tar.gz
cInput: Added _EVENT_CTRL and CTRL_KEY() Macro
_EVENT_CTRL triggers, when CTRL + key has been pressed. Compare to CTRL_KEY( char ) _EVENT_TERM is still usable, but use is discouraged
Diffstat (limited to 'src/cInput.cpp')
-rw-r--r--src/cInput.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cInput.cpp b/src/cInput.cpp
index b11bbb5..552674f 100644
--- a/src/cInput.cpp
+++ b/src/cInput.cpp
@@ -27,6 +27,7 @@ sInputEvent cInput::poll()
sInputEvent ret;
unsigned char buff [buff_len];
+ //TODO maybe poll()?
//setup for select
fd_set rfds;
struct timeval tv;
@@ -42,9 +43,14 @@ sInputEvent cInput::poll()
return ret;
read (STDIN_FILENO, &buff, 1);
- if (buff[0] == 3) {
- // User pressd Ctr+C
- ret.type = _EVENT_TERM;
+ if (buff[0] && buff[0] <= 26) {
+ //Ctrl keys are 1-26. check with CTRL_KEY( ) Macro
+ ret.type = _EVENT_CTRL;
+ ret.c = buff[0];
+
+ //To not break compatability
+ if (buff[0] == CTRL_KEY('c'))
+ ret.type = _EVENT_TERM;
}
else if (buff[0] == '\x1B') //Escape sequence
{
@@ -71,7 +77,7 @@ sInputEvent cInput::poll()
}
}
else
- {
+ {
ret.type = _EVENT_CHAR;
ret.c = buff[0];
}