fix MacOS bug mapping modifier keys to the scancode array
authorDavid Jeske <davidj@gmail.com>
Sun, 11 Aug 2013 02:41:50 +0000 (19:41 -0700)
committerDavid Jeske <davidj@gmail.com>
Sun, 11 Aug 2013 02:50:05 +0000 (19:50 -0700)
Source/OpenTK/Platform/MacOS/CarbonBindings/MacOSKeys.cs
Source/OpenTK/Platform/MacOS/CarbonGLNative.cs

index b7fab61ba60c8a680e1936d5841631d47efbaaf9..cd7eaf9673f1cfadb2fd7d9be4f2f8f430a5333e 100644 (file)
@@ -31,6 +31,9 @@ using System.Text;
 
 namespace OpenTK.Platform.MacOS.Carbon
 {
+       // 
+       // http://web.archive.org/web/20100501161453/http://www.classicteck.com/rbarticles/mackeyboard.php
+
     enum MacOSKeyCode
     {
         A = 0,
@@ -90,6 +93,13 @@ namespace OpenTK.Platform.MacOS.Carbon
         Backspace = 51,
         Return = 52,
         Esc = 53,
+        
+        Command = 55,
+        Shift = 56,
+        CapsLock = 57,
+        OptionAlt = 58,
+        Control = 59,
+        
         KeyPad_Decimal = 65,
         KeyPad_Multiply = 67,
         KeyPad_Add = 69,
@@ -107,6 +117,7 @@ namespace OpenTK.Platform.MacOS.Carbon
         KeyPad_7 = 89,
         KeyPad_8 = 91,
         KeyPad_9 = 92,
+        
         F1 = 122,
         F2 = 120,
         F3 = 99,
index 1b59b7270d0752e87945081b3d2a806424c36963..a3fd3b7ac5344bc1351150295547a594f666b36e 100644 (file)
@@ -617,19 +617,19 @@ namespace OpenTK.Platform.MacOS
             Input.KeyboardDevice keyboard = InputDriver.Keyboard[0];
 
             if (keyboard[OpenTK.Input.Key.AltLeft] ^ option)
-                keyboard.SetKey(OpenTK.Input.Key.AltLeft, (uint)MacOSKeyModifiers.Option, option);
+                keyboard.SetKey(OpenTK.Input.Key.AltLeft, (uint)MacOSKeyCode.OptionAlt, option);
             
             if (keyboard[OpenTK.Input.Key.ShiftLeft] ^ shift)
-                keyboard.SetKey(OpenTK.Input.Key.ShiftLeft, (uint)MacOSKeyModifiers.Shift, shift);
+                keyboard.SetKey(OpenTK.Input.Key.ShiftLeft, (uint)MacOSKeyCode.Shift, shift);
             
             if (keyboard[OpenTK.Input.Key.WinLeft] ^ command)
-                keyboard.SetKey(OpenTK.Input.Key.WinLeft, (uint)MacOSKeyModifiers.Command, command);
+                keyboard.SetKey(OpenTK.Input.Key.WinLeft, (uint)MacOSKeyCode.Command, command);
             
             if (keyboard[OpenTK.Input.Key.ControlLeft] ^ control)
-                keyboard.SetKey(OpenTK.Input.Key.ControlLeft, (uint)MacOSKeyModifiers.Control, control);
+                keyboard.SetKey(OpenTK.Input.Key.ControlLeft, (uint)MacOSKeyCode.Control, control);
             
             if (keyboard[OpenTK.Input.Key.CapsLock] ^ caps)
-                keyboard.SetKey(OpenTK.Input.Key.CapsLock, (uint)MacOSKeyModifiers.CapsLock, caps);
+                keyboard.SetKey(OpenTK.Input.Key.CapsLock, (uint)MacOSKeyCode.CapsLock, caps);
             
         }