diff -r 0a07d002f10b -r d798b3b114b5 src/video/win32/SDL_win32events.c --- a/src/video/win32/SDL_win32events.c Sat Aug 14 12:28:43 2010 -0700 +++ b/src/video/win32/SDL_win32events.c Sun Aug 15 04:04:07 2010 -0700 @@ -211,6 +211,40 @@ SDL_SendMouseButton(data->window, SDL_RELEASED, SDL_BUTTON_LEFT); break; + case WM_RBUTTONDOWN: + SDL_SendMouseButton(data->window, SDL_PRESSED, SDL_BUTTON_RIGHT); + break; + + case WM_RBUTTONUP: + SDL_SendMouseButton(data->window, SDL_RELEASED, SDL_BUTTON_RIGHT); + break; + + case WM_MBUTTONDOWN: + SDL_SendMouseButton(data->window, SDL_PRESSED, SDL_BUTTON_MIDDLE); + break; + + case WM_MBUTTONUP: + SDL_SendMouseButton(data->window, SDL_RELEASED, SDL_BUTTON_MIDDLE); + break; + + case WM_XBUTTONDOWN: + SDL_SendMouseButton(data->window, SDL_PRESSED, SDL_BUTTON_X1 + GET_XBUTTON_WPARAM(wParam) - 1); + returnCode = TRUE; + break; + + case WM_XBUTTONUP: + SDL_SendMouseButton(data->window, SDL_RELEASED, SDL_BUTTON_X1 + GET_XBUTTON_WPARAM(wParam) - 1); + returnCode = TRUE; + break; + + case WM_MOUSEWHEEL: + { + int motion = (short) HIWORD(wParam); + + SDL_SendMouseWheel(data->window, 0, motion); + break; + } + case WM_MOUSELEAVE: if (SDL_GetMouseFocus() == data->window) { SDL_SetMouseFocus(NULL);