Skip to content

Commit

Permalink
Date: Sun, 18 Jul 2004 00:22:07 -0400
Browse files Browse the repository at this point in the history
From: "Philippe Anctil"
Subject: [SDL] odd mouse event generated on init

The mouse relative and absolute coordinates appear to be always equal for
the first mouse event.
  • Loading branch information
slouken committed Aug 21, 2004
1 parent 99576d7 commit 40e2aa1
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions src/events/SDL_mouse.c
Expand Up @@ -38,8 +38,8 @@ static char rcsid =


/* These are static for our mouse handling code */
static Sint16 SDL_MouseX = 0;
static Sint16 SDL_MouseY = 0;
static Sint16 SDL_MouseX = -1;
static Sint16 SDL_MouseY = -1;
static Sint16 SDL_DeltaX = 0;
static Sint16 SDL_DeltaY = 0;
static Uint8 SDL_ButtonState = 0;
Expand All @@ -49,8 +49,8 @@ static Uint8 SDL_ButtonState = 0;
int SDL_MouseInit(void)
{
/* The mouse is at (0,0) */
SDL_MouseX = 0;
SDL_MouseY = 0;
SDL_MouseX = -1;
SDL_MouseY = -1;
SDL_DeltaX = 0;
SDL_DeltaY = 0;
SDL_ButtonState = 0;
Expand All @@ -72,10 +72,20 @@ void SDL_ResetMouse(void)

Uint8 SDL_GetMouseState (int *x, int *y)
{
if ( x )
*x = SDL_MouseX;
if ( y )
*y = SDL_MouseY;
if ( x ) {
if ( SDL_MouseX < 0 ) {
*x = 0;
} else {
*x = SDL_MouseX;
}
}
if ( y ) {
if ( SDL_MouseY < 0 ) {
*y = 0;
} else {
*y = SDL_MouseY;
}
}
return(SDL_ButtonState);
}

Expand Down Expand Up @@ -152,7 +162,7 @@ int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y)
This prevents lots of extraneous large delta relative motion when
the screen is windowed mode and the mouse is outside the window.
*/
if ( ! relative ) {
if ( ! relative && SDL_MouseX >= 0 && SDL_MouseY >= 0 ) {
Xrel = X-SDL_MouseX;
Yrel = Y-SDL_MouseY;
}
Expand Down

0 comments on commit 40e2aa1

Please sign in to comment.