diff options
Diffstat (limited to 'src/sdl/sdl_input.c')
-rw-r--r-- | src/sdl/sdl_input.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/sdl/sdl_input.c b/src/sdl/sdl_input.c index 858b8d6e..95d5a350 100644 --- a/src/sdl/sdl_input.c +++ b/src/sdl/sdl_input.c @@ -802,18 +802,25 @@ static void IN_ProcessEvents( void ) int b; switch( e.button.button ) { - case SDL_BUTTON_LEFT: b = K_MOUSE1; break; - case SDL_BUTTON_MIDDLE: b = K_MOUSE3; break; - case SDL_BUTTON_RIGHT: b = K_MOUSE2; break; - case SDL_BUTTON_X1: b = K_MOUSE4; break; - case SDL_BUTTON_X2: b = K_MOUSE5; break; - default: b = K_AUX1 + ( e.button.button - SDL_BUTTON_X2 + 1 ) % 16; break; + case 1: b = K_MOUSE1; break; + case 2: b = K_MOUSE3; break; + case 3: b = K_MOUSE2; break; + case 4: b = K_MOUSE4; break; + case 5: b = K_MOUSE5; break; + default: b = K_AUX1 + ( e.button.button - 8 ) % 16; break; } Com_QueueEvent( 0, SE_KEY, b, ( e.type == SDL_MOUSEBUTTONDOWN ? qtrue : qfalse ), 0, NULL ); } break; + case SDL_MOUSEWHEEL: + if( e.wheel.y > 0 ) + Com_QueueEvent( 0, SE_KEY, K_MWHEELUP, qtrue, 0, NULL ); + else + Com_QueueEvent( 0, SE_KEY, K_MWHEELDOWN, qtrue, 0, NULL ); + break; + case SDL_QUIT: Cbuf_ExecuteText(EXEC_NOW, "quit Closed window\n"); break; |