feature<PopupPanel>: add hotkey ESC to close current popup panel

This commit is contained in:
leo 2021-09-17 18:00:18 +08:00
parent b134876f8b
commit 468d0e6f25
5 changed files with 20 additions and 0 deletions

View file

@ -34,6 +34,7 @@ namespace SourceGit.Views {
new Keymap("CTRL + F", "Search"),
new Keymap("F5", "Refresh"),
new Keymap("SPACE", "ToggleStage"),
new Keymap("ESC", "CancelPopup"),
};
}

View file

@ -170,6 +170,19 @@ namespace SourceGit.Views {
e.Handled = true;
return;
}
if (Keyboard.IsKeyDown(Key.Escape)) {
var page = container.Get(tabs.Current);
var popup = null as Widgets.PopupPanel;
if (page is Widgets.Dashboard) {
popup = (page as Widgets.Dashboard).popup;
} else if (page is Widgets.Welcome) {
popup = (page as Widgets.Welcome).popup;
}
popup?.CancelDirectly();
}
}
#endregion
}

View file

@ -51,6 +51,10 @@ namespace SourceGit.Views.Widgets {
Dispatcher.Invoke(() => txtMsg.Text = message);
}
public void CancelDirectly() {
if (Visibility == Visibility.Visible) Cancel(this, null);
}
public void Close() {
if (Visibility != Visibility.Visible) return;