Add shortcut to reopen last closed tab, closes #2211 (#2214)

This commit is contained in:
Abitofevrything 2021-10-09 21:20:12 +02:00 committed by GitHub
parent 11e9f8403e
commit c1e1f3df24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 0 deletions

View File

@ -14,6 +14,8 @@ export default class TabManager extends Component {
this.activeNtxId = null;
this.recentlyClosedTabs = [];
this.tabsUpdate = new SpacedUpdate(async () => {
if (!appContext.isMainWindow) {
return;
@ -303,6 +305,8 @@ export default class TabManager extends Component {
await this.triggerEvent('beforeTabRemove', { ntxIds: ntxIdsToRemove });
this.recentlyClosedTabs.push(noteContextToRemove);
if (!noteContextToRemove.isMainContext()) {
await this.activateNoteContext(noteContextToRemove.getMainContext().ntxId);
}
@ -410,6 +414,23 @@ export default class TabManager extends Component {
this.triggerCommand('openInWindow', {notePath, hoistedNoteId});
}
async reopenLastTabCommand() {
if (this.recentlyClosedTabs.length > 0) {
const noteContext = this.recentlyClosedTabs.pop();
this.child(noteContext);
await this.triggerEvent('newNoteContextCreated', {noteContext});
this.activateNoteContext(noteContext.ntxId);
await this.triggerEvent('noteSwitched', {
noteContext: noteContext,
notePath: noteContext.notePath
});
}
}
hoistedNoteChangedEvent() {
this.tabsUpdate.scheduleUpdate();
}

View File

@ -207,6 +207,12 @@ const DEFAULT_KEYBOARD_ACTIONS = [
description: "Closes active tab",
scope: "window"
},
{
actionName: "reopenLastTab",
defaultShortcuts: isElectron ? ["CommandOrControl+Shift+T"] : [],
description: "Repoens the last closed tab",
scope: "window"
},
{
actionName: "activateNextTab",
defaultShortcuts: isElectron ? ["CommandOrControl+Tab"] : [],