Ejemplo n.º 1
0
        private bool TryConvert(KeyInput keyInput, out Key key, out ModifierKeys modifierKeys)
        {
            if (AlternateKeyUtil.TrySpecialVimKeyToKey(keyInput.Key, out key))
            {
                var keyModifiers = keyInput.KeyModifiers;

                modifierKeys = ModifierKeys.None;
                if (KeyModifiers.Control == (keyModifiers & KeyModifiers.Control))
                {
                    modifierKeys |= ModifierKeys.Control;
                }

                if (KeyModifiers.Shift == (keyModifiers & KeyModifiers.Shift))
                {
                    modifierKeys |= ModifierKeys.Shift;
                }

                if (KeyModifiers.Alt == (keyModifiers & KeyModifiers.Alt))
                {
                    modifierKeys |= ModifierKeys.Alt;
                }

                return(true);
            }

            if (keyInput.RawChar.IsSome())
            {
                uint virtualKey;
                VirtualKeyModifiers virtualKeyModifiers;

                if (_virtualKeyboard.TryMapChar(keyInput.Char, out virtualKey, out virtualKeyModifiers))
                {
                    key          = KeyInterop.KeyFromVirtualKey((int)virtualKey);
                    modifierKeys = ModifierKeys.None;

                    if (VirtualKeyModifiers.Control == (virtualKeyModifiers & VirtualKeyModifiers.Control))
                    {
                        modifierKeys |= ModifierKeys.Control;
                    }

                    if (VirtualKeyModifiers.Shift == (virtualKeyModifiers & VirtualKeyModifiers.Shift))
                    {
                        modifierKeys |= ModifierKeys.Shift;
                    }

                    if (VirtualKeyModifiers.Alt == (virtualKeyModifiers & VirtualKeyModifiers.Alt))
                    {
                        modifierKeys |= ModifierKeys.Alt;
                    }

                    return(true);
                }
            }

            key          = Key.None;
            modifierKeys = ModifierKeys.None;
            return(false);
        }
Ejemplo n.º 2
0
        private bool TryConvert(KeyInput keyInput, out Key key, out ModifierKeys modifierKeys)
        {
            if (AlternateKeyUtil.TrySpecialVimKeyToKey(keyInput.Key, out key))
            {
                var keyModifiers = keyInput.KeyModifiers;

                modifierKeys = ModifierKeys.None;
                if (VimKeyModifiers.Control == (keyModifiers & VimKeyModifiers.Control))
                {
                    modifierKeys |= ModifierKeys.Control;
                }

                if (VimKeyModifiers.Shift == (keyModifiers & VimKeyModifiers.Shift))
                {
                    modifierKeys |= ModifierKeys.Shift;
                }

                if (VimKeyModifiers.Alt == (keyModifiers & VimKeyModifiers.Alt))
                {
                    modifierKeys |= ModifierKeys.Alt;
                }

                return(true);
            }

            KeyData keyData;

            if (KeyDataMap.TryGetValue(keyInput, out keyData))
            {
                key          = keyData.Key;
                modifierKeys = keyData.ModifierKeys;
                return(true);
            }

            key          = Key.None;
            modifierKeys = ModifierKeys.None;
            return(false);
        }