Пример #1
0
        public void Update(KeyboardState currentKeyboardState)
        {
            if (_requiresUpdate)
            {
                _lastKeyList = _newKeyList;
                _newKeyList  = currentKeyboardState.GetPressedKeys();

                StripUnmanagedKeys(ref _newKeyList);

                if (!TreatModifiersAsKeys)
                {
                    LastModifiers = NewModifiers;
                    NewModifiers  = _newKeyList.GetModifiers();
                    StripModifiers(ref _newKeyList);
                }

                NewKeyDelta = _newKeyList.Except(_lastKeyList).ToList();

                if (NewKeyDelta.Any())
                {
                    FocusKey = NewKeyDelta.First();
                }
                else if (_lastKeyList.Except(_newKeyList).Any())
                {
                    FocusKey = Keys.None;
                }
            }
        }
Пример #2
0
        public void Start(KeyboardState currentKeyboardState)
        {
            _requiresUpdate = true;
            _lastKeyList    = currentKeyboardState.GetPressedKeys();

            StripUnmanagedKeys(ref _lastKeyList);

            if (!TreatModifiersAsKeys)
            {
                LastModifiers = _lastKeyList.GetModifiers();
                StripModifiers(ref _lastKeyList);
            }

            NewKeyDelta.Clear();
            FocusKey = Keys.None;
        }