diff src/video/cocoa/SDL_cocoamouse.m @ 5057:bdff53ed6c8b

Fix mouse wheel events in fullscreen mode for OS X With proposed patch by vernier.
author Jjgod Jiang <gzjjgod@gmail.com>
date Fri, 21 Jan 2011 00:15:18 +0100
parents 3d91e31fcf71
children 03db7d4b02b4
line wrap: on
line diff
--- a/src/video/cocoa/SDL_cocoamouse.m	Thu Jan 20 16:05:59 2011 -0800
+++ b/src/video/cocoa/SDL_cocoamouse.m	Fri Jan 21 00:15:18 2011 +0100
@@ -93,6 +93,9 @@
     case NSRightMouseUp:
         SDL_SendMouseButton(window, SDL_RELEASED, ConvertMouseButtonToSDL([event buttonNumber]));
         break;
+    case NSScrollWheel:
+        Cocoa_HandleMouseWheel(window, event);
+        break;
     case NSLeftMouseDragged:
     case NSRightMouseDragged:
     case NSOtherMouseDragged: /* usually middle mouse dragged */
@@ -109,4 +112,23 @@
 {
 }
 
+void
+Cocoa_HandleMouseWheel(SDL_Window *window, NSEvent *event)
+{
+    float x = [event deltaX];
+    float y = [event deltaY];
+
+    if (x > 0) {
+        x += 0.9f;
+    } else if (x < 0) {
+        x -= 0.9f;
+    }
+    if (y > 0) {
+        y += 0.9f;
+    } else if (y < 0) {
+        y -= 0.9f;
+    }
+    SDL_SendMouseWheel(window, (int)x, (int)y);
+}
+
 /* vi: set ts=4 sw=4 expandtab: */