Пример #1
0
        private void OnKeyPressed(object sender, IKeyTrackerEventArgs e)
        {
            if (_combosEnumerator.Current.IsPressed(_keyTracker.Modifiers, e.Key))
            {
                if (_combosEnumerator.MoveNext())
                {
                    return;
                }

                ResetEnumerator();

                var args = new HotkeyEventArgs
                {
                    Handled = Handled
                };

                _pressedKeys = _keyTracker.GetPressedKeysSet();
                IsPressed    = true;
                HotkeyPressed?.Invoke(this, args);

                e.Handled = args.Handled;
            }
            else if (!e.IsModifier)
            {
                IsPressed = false;
                ResetEnumerator();
            }
        }
Пример #2
0
        private void OnKeyUnpressed(object sender, IKeyTrackerEventArgs e)
        {
            if (!IsPressed)
            {
                return;
            }
            if (!_pressedKeys.Contains(e.Key))
            {
                return;
            }

            IsPressed = false;
            ResetEnumerator();
        }