diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-22 22:36:23 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-22 22:36:23 +0000 |
commit | 82c06412ef39522c4deab457ce7a3e78160d8a19 (patch) | |
tree | 80a656d624c1d979df956a6982fb2246b81b6c69 /src/client/console.cc | |
parent | 9b041ac2e075bfb3a30397a8acdc5432860d2c84 (diff) |
keypad and numlock support
Diffstat (limited to 'src/client/console.cc')
-rw-r--r-- | src/client/console.cc | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/client/console.cc b/src/client/console.cc index 9c7c6ca..85cb72e 100644 --- a/src/client/console.cc +++ b/src/client/console.cc @@ -204,11 +204,11 @@ void toggle() } } -void keypressed(const SDL_keysym &keysym) +void keypressed(int key) { std::deque<std::string>::reverse_iterator upit; - switch( keysym.sym ) { + switch( key ) { case SDLK_TAB: core::CommandBuffer::complete( (*history_pos), input_pos); break; @@ -227,7 +227,6 @@ void keypressed(const SDL_keysym &keysym) input_pos = 0; } break; - case SDLK_KP8: case SDLK_UP: upit = history_pos; ++upit; @@ -236,27 +235,22 @@ void keypressed(const SDL_keysym &keysym) input_pos = (*history_pos).size(); } break; - case SDLK_KP2: case SDLK_DOWN: if (history_pos != history.rbegin()) { --history_pos; input_pos = (*history_pos).size(); } break; - case SDLK_KP7: case SDLK_HOME: input_pos = 0; break; - case SDLK_KP1: case SDLK_END: input_pos = (*history_pos).size(); break; - case SDLK_KP4: case SDLK_LEFT: if (input_pos > 0) input_pos--; break; - case SDLK_KP6: case SDLK_RIGHT: if (input_pos < (*history_pos).size()) input_pos++; @@ -276,11 +270,11 @@ void keypressed(const SDL_keysym &keysym) else console_scroll = 0; break; default: - if ((keysym.sym >= 32 ) && (keysym.sym <175)) { + if ((key >= 32 ) && (key <175)) { if (input_pos == (*history_pos).size()) - (*history_pos) += keysym_to_char(keysym); + (*history_pos) += (char)key; else - (*history_pos).insert(input_pos, 1, keysym_to_char(keysym)); + (*history_pos).insert(input_pos, 1, (char)key); input_pos++; } break; |