Fixed bug #382
Added horizontal scrolling support: SDL_BUTTON_WHEELLEFT (6) and SDL_BUTTON_WHEELRIGHT (7) --HG-- branch : SDL-1.2 extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402427
This commit is contained in:
parent
4722d6e917
commit
79ce9cd629
5 changed files with 44 additions and 13 deletions
2
WhatsNew
2
WhatsNew
|
@ -7,6 +7,8 @@ Version 1.0:
|
||||||
Added SDL_VIDEO_ALLOW_SCREENSAVER to override SDL's disabling
|
Added SDL_VIDEO_ALLOW_SCREENSAVER to override SDL's disabling
|
||||||
of the screensaver on Mac OS X and X11.
|
of the screensaver on Mac OS X and X11.
|
||||||
|
|
||||||
|
Added SDL_BUTTON_WHEELLEFT (6) and SDL_BUTTON_WHEELRIGHT (7)
|
||||||
|
|
||||||
1.2.10:
|
1.2.10:
|
||||||
If SDL_OpenAudio() is passed zero for the desired format
|
If SDL_OpenAudio() is passed zero for the desired format
|
||||||
fields, the following environment variables will be used
|
fields, the following environment variables will be used
|
||||||
|
|
|
@ -28,6 +28,9 @@ SDL 1.2.12 is a minor bug fix release.
|
||||||
<P>
|
<P>
|
||||||
Added SDL_VIDEO_ALLOW_SCREENSAVER to override SDL's disabling of the screensaver on Mac OS X, Windows, and X11.
|
Added SDL_VIDEO_ALLOW_SCREENSAVER to override SDL's disabling of the screensaver on Mac OS X, Windows, and X11.
|
||||||
</P>
|
</P>
|
||||||
|
<P>
|
||||||
|
Added SDL_BUTTON_WHEELLEFT (6) and SDL_BUTTON_WHEELRIGHT (7)
|
||||||
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Fixed buffer overrun crash when resampling audio rates.
|
Fixed buffer overrun crash when resampling audio rates.
|
||||||
</P>
|
</P>
|
||||||
|
|
|
@ -115,6 +115,8 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
|
||||||
Button 3: Right mouse button
|
Button 3: Right mouse button
|
||||||
Button 4: Mouse wheel up (may also be a real button)
|
Button 4: Mouse wheel up (may also be a real button)
|
||||||
Button 5: Mouse wheel down (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(X) (1 << ((X)-1))
|
||||||
#define SDL_BUTTON_LEFT 1
|
#define SDL_BUTTON_LEFT 1
|
||||||
|
@ -122,6 +124,8 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
|
||||||
#define SDL_BUTTON_RIGHT 3
|
#define SDL_BUTTON_RIGHT 3
|
||||||
#define SDL_BUTTON_WHEELUP 4
|
#define SDL_BUTTON_WHEELUP 4
|
||||||
#define SDL_BUTTON_WHEELDOWN 5
|
#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_LMASK SDL_BUTTON(SDL_BUTTON_LEFT)
|
||||||
#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE)
|
#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE)
|
||||||
#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT)
|
#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT)
|
||||||
|
|
|
@ -294,12 +294,23 @@ SDL_WarpMouse((int)center.x*2-1,(int)center.y*2-1);
|
||||||
float x, y;
|
float x, y;
|
||||||
x = y = 0;
|
x = y = 0;
|
||||||
if (msg->FindFloat("be:wheel_delta_x", &x) == B_OK && msg->FindFloat("be:wheel_delta_y", &y) == B_OK) {
|
if (msg->FindFloat("be:wheel_delta_x", &x) == B_OK && msg->FindFloat("be:wheel_delta_y", &y) == B_OK) {
|
||||||
if (x < 0 || y < 0) {
|
if ( y ) {
|
||||||
SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELDOWN, 0, 0);
|
if (y < 0) {
|
||||||
SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELDOWN, 0, 0);
|
SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELDOWN, 0, 0);
|
||||||
} else if (x > 0 || y > 0) {
|
SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELDOWN, 0, 0);
|
||||||
SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_WHEELUP, 0, 0);
|
} else {
|
||||||
SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_WHEELUP, 0, 0);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -932,13 +932,24 @@ void QZ_PumpEvents (_THIS)
|
||||||
Uint8 button;
|
Uint8 button;
|
||||||
dy = [ event deltaY ];
|
dy = [ event deltaY ];
|
||||||
dx = [ event deltaX ];
|
dx = [ event deltaX ];
|
||||||
if ( dy > 0.0 || dx > 0.0 ) /* Scroll up */
|
if ( dy ) {
|
||||||
button = SDL_BUTTON_WHEELUP;
|
if ( dy > 0.0 ) /* Scroll up */
|
||||||
else /* Scroll down */
|
button = SDL_BUTTON_WHEELUP;
|
||||||
button = SDL_BUTTON_WHEELDOWN;
|
else /* Scroll down */
|
||||||
/* For now, wheel is sent as a quick down+up */
|
button = SDL_BUTTON_WHEELDOWN;
|
||||||
SDL_PrivateMouseButton (SDL_PRESSED, button, 0, 0);
|
/* For now, wheel is sent as a quick down+up */
|
||||||
SDL_PrivateMouseButton (SDL_RELEASED, button, 0, 0);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NSKeyUp:
|
case NSKeyUp:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue