enabled wheel mouse support (initial patch by Volker Ruppert)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1229 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2005-01-17 22:32:23 +00:00
parent ada89ce61b
commit 18a6d284ad

25
sdl.c
View File

@ -279,9 +279,9 @@ static void sdl_grab_end(void)
sdl_update_caption(); sdl_update_caption();
} }
static void sdl_send_mouse_event(void) static void sdl_send_mouse_event(int dz)
{ {
int dx, dy, dz, state, buttons; int dx, dy, state, buttons;
state = SDL_GetRelativeMouseState(&dx, &dy); state = SDL_GetRelativeMouseState(&dx, &dy);
buttons = 0; buttons = 0;
if (state & SDL_BUTTON(SDL_BUTTON_LEFT)) if (state & SDL_BUTTON(SDL_BUTTON_LEFT))
@ -290,14 +290,6 @@ static void sdl_send_mouse_event(void)
buttons |= MOUSE_EVENT_RBUTTON; buttons |= MOUSE_EVENT_RBUTTON;
if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE)) if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE))
buttons |= MOUSE_EVENT_MBUTTON; buttons |= MOUSE_EVENT_MBUTTON;
/* XXX: test wheel */
dz = 0;
#ifdef SDL_BUTTON_WHEELUP
if (state & SDL_BUTTON(SDL_BUTTON_WHEELUP))
dz--;
if (state & SDL_BUTTON(SDL_BUTTON_WHEELDOWN))
dz++;
#endif
kbd_mouse_event(dx, dy, dz, buttons); kbd_mouse_event(dx, dy, dz, buttons);
} }
@ -426,7 +418,7 @@ static void sdl_refresh(DisplayState *ds)
break; break;
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
if (gui_grab) { if (gui_grab) {
sdl_send_mouse_event(); sdl_send_mouse_event(0);
} }
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
@ -440,7 +432,16 @@ static void sdl_refresh(DisplayState *ds)
sdl_grab_start(); sdl_grab_start();
} }
} else { } else {
sdl_send_mouse_event(); int dz;
dz = 0;
#ifdef SDL_BUTTON_WHEELUP
if (bev->button == SDL_BUTTON_WHEELUP) {
dz = -1;
} else if (bev->button == SDL_BUTTON_WHEELDOWN) {
dz = 1;
}
#endif
sdl_send_mouse_event(dz);
} }
} }
break; break;