# HG changeset patch
# User Sam Lantinga
- Added SDL_BUTTON_WHEELLEFT (6) and SDL_BUTTON_WHEELRIGHT (7) -
-Fixed buffer overrun crash when resampling audio rates.
diff -r 3aa1406620f6 -r f5794774970d include/SDL_mouse.h --- a/include/SDL_mouse.h Fri Jul 06 13:32:20 2007 +0000 +++ b/include/SDL_mouse.h Fri Jul 06 13:39:03 2007 +0000 @@ -115,8 +115,6 @@ Button 3: Right mouse button Button 4: Mouse wheel up (may also be a real button) Button 5: Mouse wheel down (may also be a real button) - Button 6: Mouse wheel left (may also be a real button) - Button 7: Mouse wheel right (may also be a real button) */ #define SDL_BUTTON(X) (1 << ((X)-1)) #define SDL_BUTTON_LEFT 1 @@ -124,8 +122,6 @@ #define SDL_BUTTON_RIGHT 3 #define SDL_BUTTON_WHEELUP 4 #define SDL_BUTTON_WHEELDOWN 5 -#define SDL_BUTTON_WHEELLEFT 6 -#define SDL_BUTTON_WHEELRIGHT 7 #define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) #define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) #define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) diff -r 3aa1406620f6 -r f5794774970d src/video/bwindow/SDL_sysevents.cc --- a/src/video/bwindow/SDL_sysevents.cc Fri Jul 06 13:32:20 2007 +0000 +++ b/src/video/bwindow/SDL_sysevents.cc Fri Jul 06 13:39:03 2007 +0000 @@ -294,23 +294,12 @@ float x, y; x = y = 0; if (msg->FindFloat("be:wheel_delta_x", &x) == B_OK && msg->FindFloat("be:wheel_delta_y", &y) == B_OK) { - if ( y ) { - if (y < 0) { - SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELDOWN, 0, 0); - SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELDOWN, 0, 0); - } else { - SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELUP, 0, 0); - SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELUP, 0, 0); - } - } - if ( x ) { - if (x < 0) { - SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELRIGHT, 0, 0); - SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELRIGHT, 0, 0); - } else { - SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELLEFT, 0, 0); - SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELLEFT, 0, 0); - } + if (x < 0 || y < 0) { + SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELDOWN, 0, 0); + SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELDOWN, 0, 0); + } else if (x > 0 || y > 0) { + SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELUP, 0, 0); + SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELUP, 0, 0); } } break; diff -r 3aa1406620f6 -r f5794774970d src/video/quartz/SDL_QuartzEvents.m --- a/src/video/quartz/SDL_QuartzEvents.m Fri Jul 06 13:32:20 2007 +0000 +++ b/src/video/quartz/SDL_QuartzEvents.m Fri Jul 06 13:39:03 2007 +0000 @@ -932,24 +932,13 @@ Uint8 button; dy = [ event deltaY ]; dx = [ event deltaX ]; - if ( dy ) { - if ( dy > 0.0 ) /* Scroll up */ - button = SDL_BUTTON_WHEELUP; - else /* Scroll down */ - button = SDL_BUTTON_WHEELDOWN; - /* For now, wheel is sent as a quick down+up */ - SDL_PrivateMouseButton (SDL_PRESSED, button, 0, 0); - SDL_PrivateMouseButton (SDL_RELEASED, button, 0, 0); - } - if ( dx ) { - if ( dx > 0.0 ) /* Scroll left */ - button = SDL_BUTTON_WHEELLEFT; - else /* Scroll right */ - button = SDL_BUTTON_WHEELRIGHT; - /* For now, wheel is sent as a quick down+up */ - SDL_PrivateMouseButton (SDL_PRESSED, button, 0, 0); - SDL_PrivateMouseButton (SDL_RELEASED, button, 0, 0); - } + if ( dy > 0.0 || dx > 0.0 ) /* Scroll up */ + button = SDL_BUTTON_WHEELUP; + else /* Scroll down */ + button = SDL_BUTTON_WHEELDOWN; + /* For now, wheel is sent as a quick down+up */ + SDL_PrivateMouseButton (SDL_PRESSED, button, 0, 0); + SDL_PrivateMouseButton (SDL_RELEASED, button, 0, 0); } break; case NSKeyUp: diff -r 3aa1406620f6 -r f5794774970d src/video/wincommon/SDL_sysevents.c --- a/src/video/wincommon/SDL_sysevents.c Fri Jul 06 13:32:20 2007 +0000 +++ b/src/video/wincommon/SDL_sysevents.c Fri Jul 06 13:39:03 2007 +0000 @@ -520,12 +520,12 @@ break; case WM_XBUTTONDOWN: xbuttonval = GET_XBUTTON_WPARAM(wParam); - button = SDL_BUTTON_WHEELRIGHT + xbuttonval; + button = SDL_BUTTON_WHEELDOWN + xbuttonval; state = SDL_PRESSED; break; case WM_XBUTTONUP: xbuttonval = GET_XBUTTON_WPARAM(wParam); - button = SDL_BUTTON_WHEELRIGHT + xbuttonval; + button = SDL_BUTTON_WHEELDOWN + xbuttonval; state = SDL_RELEASED; break; default: