Takeshi Nishimura\'s changes to make the Windows mouse wheel/button mapping match...
authorJohn F. Fay <johnffay@nettally.com>
Thu, 26 May 2005 12:26:31 +0000 (12:26 +0000)
committerJohn F. Fay <johnffay@nettally.com>
Thu, 26 May 2005 12:26:31 +0000 (12:26 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@628 7f0cb862-5218-0410-a997-914c9d46530a

src/freeglut_main.c

index 6d70b8a..7f62b84 100644 (file)
@@ -1477,11 +1477,14 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
             else  /* No mouse wheel, call the mouse button callback twice */
             {
                 /*
+                 * Map wheel zero to button 3 and 4; +1 to 3, -1 to 4
+                 *  "    "   one                     +1 to 5, -1 to 6, ...
+                 *
                  * XXX The below assumes that you have no more than 3 mouse
                  * XXX buttons.  Sorry.
                  */
-                int button = wheel_number*2 + 4;
-                if( direction > 0 )
+                int button = wheel_number * 2 + 3;
+                if( direction < 0 )
                     ++button;
                 INVOKE_WCB( *window, Mouse,
                             ( button, GLUT_DOWN,
@@ -1489,7 +1492,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
                 );
                 INVOKE_WCB( *window, Mouse,
                             ( button, GLUT_UP,
-                              window->State.MouseX, window->State.MouseX )
+                              window->State.MouseX, window->State.MouseY )
                 );
             }