diff --git a/code/client/cl_keys.c b/code/client/cl_keys.c index 9e13d0d4..7ad8676d 100644 --- a/code/client/cl_keys.c +++ b/code/client/cl_keys.c @@ -441,19 +441,11 @@ void Field_KeyDownEvent( field_t *edit, int key ) { switch ( key ) { case K_DEL: if ( edit->cursor < len ) { - memmove( edit->buffer + edit->cursor, + memmove( edit->buffer + edit->cursor, edit->buffer + edit->cursor + 1, len - edit->cursor ); } break; - case K_BACKSPACE: - if ( edit->cursor > 0 ) { - memmove( edit->buffer + edit->cursor - 1, - edit->buffer + edit->cursor, len + 1 - edit->cursor ); - edit->cursor--; - } - break; - case K_RIGHTARROW: if ( edit->cursor < len ) { edit->cursor++; diff --git a/code/sdl/sdl_input.c b/code/sdl/sdl_input.c index 9048d5b7..3bf785cf 100644 --- a/code/sdl/sdl_input.c +++ b/code/sdl/sdl_input.c @@ -729,6 +729,9 @@ static void IN_ProcessEvents( void ) if( ( key = IN_TranslateSDLToQ3Key( &e.key.keysym, qtrue ) ) ) Com_QueueEvent( 0, SE_KEY, key, qtrue, 0, NULL ); + if( key == K_BACKSPACE ) + Com_QueueEvent( 0, SE_CHAR, CTRL('h'), 0, 0, NULL ); + lastKeyDown = key; break;