From 7e1ec47b4668b3f8606ea1c7960669a8525e0187 Mon Sep 17 00:00:00 2001 From: Mbucari Date: Fri, 31 Mar 2023 11:59:48 -0600 Subject: [PATCH] Tweak AccessKeyHandler --- Source/LibationAvalonia/AccessKeyHandlerEx.cs | 43 ++++++------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/Source/LibationAvalonia/AccessKeyHandlerEx.cs b/Source/LibationAvalonia/AccessKeyHandlerEx.cs index b60d3ea5..9369eb14 100644 --- a/Source/LibationAvalonia/AccessKeyHandlerEx.cs +++ b/Source/LibationAvalonia/AccessKeyHandlerEx.cs @@ -11,26 +11,21 @@ namespace LibationAvalonia public AccessKeyHandlerEx(KeyModifiers menuKeyModifier) { - KeyModifier = menuKeyModifier; - ActivatorKeys = menuKeyModifier switch - { - KeyModifiers.Alt => new[] { Key.LeftAlt, Key.RightAlt }, - KeyModifiers.Control => new[] { Key.LeftCtrl, Key.RightCtrl }, - KeyModifiers.Meta => new[] { Key.LWin, Key.RWin }, - _ => throw new System.NotSupportedException($"{nameof(KeyModifiers)}.{menuKeyModifier} is not implemented"), - }; - } + KeyModifier = menuKeyModifier; + ActivatorKeys = menuKeyModifier switch + { + KeyModifiers.Alt => new[] { Key.LeftAlt, Key.RightAlt }, + KeyModifiers.Control => new[] { Key.LeftCtrl, Key.RightCtrl }, + KeyModifiers.Meta => new[] { Key.LWin, Key.RWin }, + _ => throw new System.NotSupportedException($"{nameof(KeyModifiers)}.{menuKeyModifier} is not implemented"), + }; + } protected override void OnPreviewKeyDown(object sender, KeyEventArgs e) { - if (ActivatorKeys.Contains(e.Key)) + if (ActivatorKeys.Contains(e.Key) && e.KeyModifiers.HasAllFlags(KeyModifier)) { - var newArgs = new KeyEventArgs - { - Key = Key.LeftAlt, - Handled = e.Handled, - KeyModifiers = e.KeyModifiers, - }; + var newArgs = new KeyEventArgs { Key = Key.LeftAlt, Handled = e.Handled }; base.OnPreviewKeyDown(sender, newArgs); e.Handled = newArgs.Handled; } @@ -38,14 +33,9 @@ namespace LibationAvalonia protected override void OnPreviewKeyUp(object sender, KeyEventArgs e) { - if (ActivatorKeys.Contains(e.Key)) + if (ActivatorKeys.Contains(e.Key) && e.KeyModifiers.HasAllFlags(KeyModifier)) { - var newArgs = new KeyEventArgs() - { - Key = Key.LeftAlt, - Handled = e.Handled, - KeyModifiers = e.KeyModifiers, - }; + var newArgs = new KeyEventArgs { Key = Key.LeftAlt, Handled = e.Handled }; base.OnPreviewKeyUp(sender, newArgs); e.Handled = newArgs.Handled; } @@ -55,12 +45,7 @@ namespace LibationAvalonia { if (e.KeyModifiers.HasAllFlags(KeyModifier)) { - var newArgs = new KeyEventArgs - { - Key = e.Key, - Handled = e.Handled, - KeyModifiers = KeyModifiers.Alt, - }; + var newArgs = new KeyEventArgs { Key = e.Key, Handled = e.Handled, KeyModifiers = KeyModifiers.Alt }; base.OnKeyDown(sender, newArgs); e.Handled = newArgs.Handled; }