Browse Source

Add keyboard input modifier Command.

feature/textbox-gestures-mac-cmd+
Dan Walmsley 8 years ago
parent
commit
7e4ad14f70
  1. 7
      src/Avalonia.Input/IKeyboardDevice.cs
  2. 5
      src/OSX/Avalonia.MonoMac/TopLevelImpl.cs
  3. 3
      src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs
  4. 1
      src/Windows/Avalonia.Win32/Input/WindowsKeyboardDevice.cs
  5. 3
      src/Windows/Avalonia.Win32/OleDropTarget.cs

7
src/Avalonia.Input/IKeyboardDevice.cs

@ -14,9 +14,10 @@ namespace Avalonia.Input
Control = 2,
Shift = 4,
Windows = 8,
LeftMouseButton = 16,
RightMouseButton = 32,
MiddleMouseButton = 64
Command = 16, // Special case CMD on OSX, CTRL on other platforms.
LeftMouseButton = 32,
RightMouseButton = 64,
MiddleMouseButton = 128
}
[Flags]

5
src/OSX/Avalonia.MonoMac/TopLevelImpl.cs

@ -224,13 +224,16 @@ namespace Avalonia.MonoMac
{
var rv = new InputModifiers();
if (mod.HasFlag(NSEventModifierMask.ControlKeyMask))
rv |= InputModifiers.Control;
{rv |= InputModifiers.Control;
if (mod.HasFlag(NSEventModifierMask.ShiftKeyMask))
rv |= InputModifiers.Shift;
if (mod.HasFlag(NSEventModifierMask.AlternateKeyMask))
rv |= InputModifiers.Alt;
if (mod.HasFlag(NSEventModifierMask.CommandKeyMask))
{
rv |= InputModifiers.Windows;
rv = InputModifiers.Command;
}
if (_isLeftPressed)
rv |= InputModifiers.LeftMouseButton;

3
src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs

@ -151,7 +151,10 @@ namespace Avalonia.Win32.Interop.Wpf
if (state.HasFlag(ModifierKeys.Alt))
rv |= InputModifiers.Alt;
if (state.HasFlag(ModifierKeys.Control))
{
rv |= InputModifiers.Control;
rv |= InputModifiers.Command;
}
if (state.HasFlag(ModifierKeys.Shift))
rv |= InputModifiers.Shift;
//TODO: mouse modifiers

1
src/Windows/Avalonia.Win32/Input/WindowsKeyboardDevice.cs

@ -29,6 +29,7 @@ namespace Avalonia.Win32.Input
if (IsDown(Key.LeftCtrl) || IsDown(Key.RightCtrl))
{
result |= InputModifiers.Control;
result |= InputModifiers.Command;
}
if (IsDown(Key.LeftShift) || IsDown(Key.RightShift))

3
src/Windows/Avalonia.Win32/OleDropTarget.cs

@ -59,7 +59,10 @@ namespace Avalonia.Win32
if (state.HasFlag(UnmanagedMethods.ModifierKeys.MK_SHIFT))
modifiers |= InputModifiers.Shift;
if (state.HasFlag(UnmanagedMethods.ModifierKeys.MK_CONTROL))
{
modifiers |= InputModifiers.Control;
modifiers |= InputModifiers.Command;
}
if (state.HasFlag(UnmanagedMethods.ModifierKeys.MK_ALT))
modifiers |= InputModifiers.Alt;
return modifiers;

Loading…
Cancel
Save