private void OnNewInputGestureTextBoxKeyDown(object sender, KeyEventArgs e)
        {
            e.Handled = true;

            var vm = ViewModel as KeyboardMappingsCustomizationViewModel;
            if (vm != null)
            {
                var modifiers = KeyboardHelper.GetCurrentlyPressedModifiers();
                if (modifiers.Count == 0 && modifiers[0] == ModifierKeys.Shift)
                {
                    // Only ignore just shift, control + shift is allowed
                    return;
                }

                var key = e.Key;

                if (!_keyboardMappingsAllowedKeysService.IsAllowed(key))
                {
                    return;
                }

                var finalModifiers = ModifierKeys.None;

                foreach (var modifier in modifiers)
                {
                    finalModifiers = Enum<ModifierKeys>.Flags.SetFlag(finalModifiers, modifier);
                }

                var inputGesture = new InputGesture(key, finalModifiers);
                vm.SelectedCommandNewInputGesture = inputGesture;
            }
        }