private void ProcessModifierKey(IntPtr inEvent) { MacOSKeyModifiers modifiers = API.GetEventKeyModifiers(inEvent); bool caps = (modifiers & MacOSKeyModifiers.CapsLock) != 0 ? true : false; bool control = (modifiers & MacOSKeyModifiers.Control) != 0 ? true : false; bool command = (modifiers & MacOSKeyModifiers.Command) != 0 ? true : false; bool option = (modifiers & MacOSKeyModifiers.Option) != 0 ? true : false; bool shift = (modifiers & MacOSKeyModifiers.Shift) != 0 ? true : false; Debug.Print("Modifiers Changed: {0}", modifiers); Input.KeyboardDevice keyboard = InputDriver.Keyboard[0]; if (keyboard[OpenTK.Input.Key.AltLeft] ^ option) { keyboard[OpenTK.Input.Key.AltLeft] = option; } if (keyboard[OpenTK.Input.Key.ShiftLeft] ^ shift) { keyboard[OpenTK.Input.Key.ShiftLeft] = shift; } if (keyboard[OpenTK.Input.Key.WinLeft] ^ command) { keyboard[OpenTK.Input.Key.WinLeft] = command; } if (keyboard[OpenTK.Input.Key.ControlLeft] ^ control) { keyboard[OpenTK.Input.Key.ControlLeft] = control; } if (keyboard[OpenTK.Input.Key.CapsLock] ^ caps) { keyboard[OpenTK.Input.Key.CapsLock] = caps; } }
private void ProcessModifierKey(IntPtr inEvent) { MacOSKeyModifiers modifiers = API.GetEventKeyModifiers(inEvent); bool caps = (modifiers & MacOSKeyModifiers.CapsLock) != 0 ? true : false; bool control = (modifiers & MacOSKeyModifiers.Control) != 0 ? true : false; bool command = (modifiers & MacOSKeyModifiers.Command) != 0 ? true : false; bool option = (modifiers & MacOSKeyModifiers.Option) != 0 ? true : false; bool shift = (modifiers & MacOSKeyModifiers.Shift) != 0 ? true : false; Input.KeyboardDevice keyboard = InputDriver.Keyboard[0]; if (keyboard[OpenTK.Input.Key.AltLeft] ^ option) { ProcessKey(MacOSKeyCode.OptionAlt, option); } if (keyboard[OpenTK.Input.Key.ShiftLeft] ^ shift) { ProcessKey(MacOSKeyCode.Shift, shift); } if (keyboard[OpenTK.Input.Key.WinLeft] ^ command) { ProcessKey(MacOSKeyCode.Command, command); } if (keyboard[OpenTK.Input.Key.ControlLeft] ^ control) { ProcessKey(MacOSKeyCode.Control, control); } if (keyboard[OpenTK.Input.Key.CapsLock] ^ caps) { ProcessKey(MacOSKeyCode.CapsLock, caps); } }