Commit 18a6d284adf2d2aacca902ad683c94389e447b15
1 parent
ada89ce6
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
Showing
1 changed file
with
13 additions
and
12 deletions
sdl.c
... | ... | @@ -279,9 +279,9 @@ static void sdl_grab_end(void) |
279 | 279 | sdl_update_caption(); |
280 | 280 | } |
281 | 281 | |
282 | -static void sdl_send_mouse_event(void) | |
282 | +static void sdl_send_mouse_event(int dz) | |
283 | 283 | { |
284 | - int dx, dy, dz, state, buttons; | |
284 | + int dx, dy, state, buttons; | |
285 | 285 | state = SDL_GetRelativeMouseState(&dx, &dy); |
286 | 286 | buttons = 0; |
287 | 287 | if (state & SDL_BUTTON(SDL_BUTTON_LEFT)) |
... | ... | @@ -290,14 +290,6 @@ static void sdl_send_mouse_event(void) |
290 | 290 | buttons |= MOUSE_EVENT_RBUTTON; |
291 | 291 | if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE)) |
292 | 292 | buttons |= MOUSE_EVENT_MBUTTON; |
293 | - /* XXX: test wheel */ | |
294 | - dz = 0; | |
295 | -#ifdef SDL_BUTTON_WHEELUP | |
296 | - if (state & SDL_BUTTON(SDL_BUTTON_WHEELUP)) | |
297 | - dz--; | |
298 | - if (state & SDL_BUTTON(SDL_BUTTON_WHEELDOWN)) | |
299 | - dz++; | |
300 | -#endif | |
301 | 293 | kbd_mouse_event(dx, dy, dz, buttons); |
302 | 294 | } |
303 | 295 | |
... | ... | @@ -426,7 +418,7 @@ static void sdl_refresh(DisplayState *ds) |
426 | 418 | break; |
427 | 419 | case SDL_MOUSEMOTION: |
428 | 420 | if (gui_grab) { |
429 | - sdl_send_mouse_event(); | |
421 | + sdl_send_mouse_event(0); | |
430 | 422 | } |
431 | 423 | break; |
432 | 424 | case SDL_MOUSEBUTTONDOWN: |
... | ... | @@ -440,7 +432,16 @@ static void sdl_refresh(DisplayState *ds) |
440 | 432 | sdl_grab_start(); |
441 | 433 | } |
442 | 434 | } else { |
443 | - sdl_send_mouse_event(); | |
435 | + int dz; | |
436 | + dz = 0; | |
437 | +#ifdef SDL_BUTTON_WHEELUP | |
438 | + if (bev->button == SDL_BUTTON_WHEELUP) { | |
439 | + dz = -1; | |
440 | + } else if (bev->button == SDL_BUTTON_WHEELDOWN) { | |
441 | + dz = 1; | |
442 | + } | |
443 | +#endif | |
444 | + sdl_send_mouse_event(dz); | |
444 | 445 | } |
445 | 446 | } |
446 | 447 | break; | ... | ... |