From 18a6d284adf2d2aacca902ad683c94389e447b15 Mon Sep 17 00:00:00 2001 From: bellard Date: Mon, 17 Jan 2005 22:32:23 +0000 Subject: 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 --- sdl.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/sdl.c b/sdl.c index b061c8e592..20e45d93f0 100644 --- a/sdl.c +++ b/sdl.c @@ -279,9 +279,9 @@ static void sdl_grab_end(void) 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); buttons = 0; if (state & SDL_BUTTON(SDL_BUTTON_LEFT)) @@ -290,14 +290,6 @@ static void sdl_send_mouse_event(void) buttons |= MOUSE_EVENT_RBUTTON; if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE)) 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); } @@ -426,7 +418,7 @@ static void sdl_refresh(DisplayState *ds) break; case SDL_MOUSEMOTION: if (gui_grab) { - sdl_send_mouse_event(); + sdl_send_mouse_event(0); } break; case SDL_MOUSEBUTTONDOWN: @@ -440,7 +432,16 @@ static void sdl_refresh(DisplayState *ds) sdl_grab_start(); } } 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; -- cgit v1.2.3