Skip to content

Commit e224f59

Browse files
committed
enhance: clear unhandled key modifer before running command (#748)
1 parent 1872148 commit e224f59

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/Views/Launcher.axaml.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ public bool HasKeyModifier(KeyModifiers modifier)
7272
return _unhandledModifiers.HasFlag(modifier);
7373
}
7474

75+
public void ClearKeyModifier()
76+
{
77+
_unhandledModifiers = KeyModifiers.None;
78+
}
79+
7580
protected override void OnOpened(EventArgs e)
7681
{
7782
base.OnOpened(e);

src/Views/RepositoryToolbar.axaml.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private void Fetch(object _, RoutedEventArgs e)
5353
if (!startDirectly && OperatingSystem.IsMacOS())
5454
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
5555

56+
launcher.ClearKeyModifier();
5657
repo.Fetch(startDirectly);
5758
e.Handled = true;
5859
}
@@ -67,6 +68,7 @@ private void Pull(object _, RoutedEventArgs e)
6768
if (!startDirectly && OperatingSystem.IsMacOS())
6869
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
6970

71+
launcher.ClearKeyModifier();
7072
repo.Pull(startDirectly);
7173
e.Handled = true;
7274
}
@@ -81,6 +83,7 @@ private void Push(object _, RoutedEventArgs e)
8183
if (!startDirectly && OperatingSystem.IsMacOS())
8284
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
8385

86+
launcher.ClearKeyModifier();
8487
repo.Push(startDirectly);
8588
e.Handled = true;
8689
}
@@ -89,8 +92,16 @@ private void Push(object _, RoutedEventArgs e)
8992
private void StashAll(object _, RoutedEventArgs e)
9093
{
9194
var launcher = this.FindAncestorOfType<Launcher>();
92-
(DataContext as ViewModels.Repository)?.StashAll(launcher?.HasKeyModifier(KeyModifiers.Control) ?? false);
93-
e.Handled = true;
95+
if (launcher is not null && DataContext is ViewModels.Repository repo)
96+
{
97+
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
98+
if (!startDirectly && OperatingSystem.IsMacOS())
99+
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
100+
101+
launcher.ClearKeyModifier();
102+
repo.StashAll(startDirectly);
103+
e.Handled = true;
104+
}
94105
}
95106

96107
private void OpenGitFlowMenu(object sender, RoutedEventArgs e)

0 commit comments

Comments
 (0)