Add go-to-previous/next-location actions

This commit is contained in:
Nick O'Leary
2021-03-06 23:20:53 +00:00
parent 99a9e3a91b
commit 5181890433
3 changed files with 35 additions and 3 deletions

View File

@@ -20,6 +20,9 @@ RED.workspaces = (function() {
var activeWorkspace = 0;
var workspaceIndex = 0;
var viewStack = [];
var viewStackPos = 0;
function addWorkspace(ws,skipHistoryEntry,targetIndex) {
if (ws) {
workspace_tabs.addTab(ws,targetIndex);
@@ -245,6 +248,11 @@ RED.workspaces = (function() {
RED.view.focus();
},
onclick: function(tab) {
if (viewStackPos !== viewStack.length) {
viewStack.splice(viewStackPos);
}
viewStack.push(activeWorkspace);
viewStackPos = viewStack.length;
RED.view.focus();
},
ondblclick: function(tab) {
@@ -349,6 +357,21 @@ RED.workspaces = (function() {
RED.actions.invoke("core:search","type:tab ");
})
RED.actions.add("core:go-to-previous-location", function() {
if (viewStackPos > 0) {
if (viewStackPos === viewStack.length) {
viewStack.push(activeWorkspace);
}
RED.workspaces.show(viewStack[--viewStackPos],true);
}
})
RED.actions.add("core:go-to-next-location", function() {
if (viewStackPos < viewStack.length - 1) {
RED.workspaces.show(viewStack[++viewStackPos],true);
}
})
hideWorkspace();
}
@@ -444,7 +467,7 @@ RED.workspaces = (function() {
selection: function() {
return workspace_tabs.selection();
},
show: function(id) {
show: function(id,skipStack) {
if (!workspace_tabs.contains(id)) {
var sf = RED.nodes.subflow(id);
if (sf) {
@@ -453,6 +476,13 @@ RED.workspaces = (function() {
return;
}
}
if (!skipStack) {
if (viewStackPos !== viewStack.length) {
viewStack.splice(viewStackPos);
}
viewStack.push(activeWorkspace);
viewStackPos = viewStack.length;
}
workspace_tabs.activateTab(id);
},
refresh: function() {