diff options
Diffstat (limited to 'src/background/tabs.js')
-rw-r--r-- | src/background/tabs.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/background/tabs.js b/src/background/tabs.js index efecdc4..be8ef02 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -31,7 +31,7 @@ const selectAt = (index) => { }); }; -const selectByKeyword = (keyword) => { +const selectByKeyword = (current, keyword) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => { let matched = tabs.filter((t) => { return t.url.includes(keyword) || t.title.includes(keyword) @@ -39,10 +39,12 @@ const selectByKeyword = (keyword) => { if (matched.length == 0) { throw new RangeError('No matching buffer for ' + keyword); - } else if (matched.length >= 2) { - throw new RangeError('More than one match for ' + keyword); } - + for (let tab of matched) { + if (tab.index > current.index) { + return browser.tabs.update(tab.id, { active: true }); + } + } return browser.tabs.update(matched[0].id, { active: true }); }); } |