コード例 #1
0
        private void handleNewReleased(InputState state, InputKey releasedKey)
        {
            var pressedCombination = KeyCombination.FromInputState(state);

            // we don't want to consider exact matching here as we are dealing with bindings, not actions.
            var newlyReleased = pressedBindings.Where(b => !b.KeyCombination.IsPressed(pressedCombination, KeyCombinationMatchingMode.Any)).ToList();

            Trace.Assert(newlyReleased.All(b => KeyCombination.ContainsKey(b.KeyCombination.Keys, releasedKey)));

            foreach (var binding in newlyReleased)
            {
                pressedBindings.Remove(binding);
                PropagateReleased(getInputQueue(binding), binding.GetAction <T>());
                keyBindingQueues[binding].Clear();
            }
        }