Commit 18a6d284adf2d2aacca902ad683c94389e447b15

Authored by bellard
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
@@ -279,9 +279,9 @@ static void sdl_grab_end(void) @@ -279,9 +279,9 @@ static void sdl_grab_end(void)
279 sdl_update_caption(); 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 state = SDL_GetRelativeMouseState(&dx, &dy); 285 state = SDL_GetRelativeMouseState(&dx, &dy);
286 buttons = 0; 286 buttons = 0;
287 if (state & SDL_BUTTON(SDL_BUTTON_LEFT)) 287 if (state & SDL_BUTTON(SDL_BUTTON_LEFT))
@@ -290,14 +290,6 @@ static void sdl_send_mouse_event(void) @@ -290,14 +290,6 @@ static void sdl_send_mouse_event(void)
290 buttons |= MOUSE_EVENT_RBUTTON; 290 buttons |= MOUSE_EVENT_RBUTTON;
291 if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE)) 291 if (state & SDL_BUTTON(SDL_BUTTON_MIDDLE))
292 buttons |= MOUSE_EVENT_MBUTTON; 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 kbd_mouse_event(dx, dy, dz, buttons); 293 kbd_mouse_event(dx, dy, dz, buttons);
302 } 294 }
303 295
@@ -426,7 +418,7 @@ static void sdl_refresh(DisplayState *ds) @@ -426,7 +418,7 @@ static void sdl_refresh(DisplayState *ds)
426 break; 418 break;
427 case SDL_MOUSEMOTION: 419 case SDL_MOUSEMOTION:
428 if (gui_grab) { 420 if (gui_grab) {
429 - sdl_send_mouse_event(); 421 + sdl_send_mouse_event(0);
430 } 422 }
431 break; 423 break;
432 case SDL_MOUSEBUTTONDOWN: 424 case SDL_MOUSEBUTTONDOWN:
@@ -440,7 +432,16 @@ static void sdl_refresh(DisplayState *ds) @@ -440,7 +432,16 @@ static void sdl_refresh(DisplayState *ds)
440 sdl_grab_start(); 432 sdl_grab_start();
441 } 433 }
442 } else { 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 break; 447 break;