From a2651f617f2b1aebd8d12eb868fcbcd5303ed6ea Mon Sep 17 00:00:00 2001 From: Daniel Campoverde Date: Sun, 29 Oct 2017 20:48:22 -0500 Subject: Add TAB_FIRST operation --- src/background/actions/operation.js | 2 ++ src/background/tabs.js | 13 +++++++++++++ src/shared/operations.js | 1 + 3 files changed, 16 insertions(+) (limited to 'src') diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index b94c117..7c0df4e 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -20,6 +20,8 @@ const exec = (operation, tab) => { return tabs.selectPrevTab(tab.index, operation.count); case operations.TAB_NEXT: return tabs.selectNextTab(tab.index, operation.count); + case operations.TAB_FIRST: + return tabs.selectFirstTab(tab.index, operation.count); case operations.TAB_RELOAD: return tabs.reload(tab, operation.cache); case operations.ZOOM_IN: diff --git a/src/background/tabs.js b/src/background/tabs.js index eed3252..eaff0f6 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -79,6 +79,19 @@ const selectNextTab = (current, count) => { }); }; +const selectFirstTab = (current, count) => { + let id = tabs[0].id; + return browser.tabs.update(id, { active: true }); +}; + +// const selectFirstTab = (current, count) => { +// return browser.tabs.query({ currentWindow: true }).then((tabs) => { +// let select = tabs.length; +// let id = tabs[select].id; +// return browser.tabs.update(id, { active: true }); +// }); +// }; + const reload = (current, cache) => { return browser.tabs.reload( current.id, diff --git a/src/shared/operations.js b/src/shared/operations.js index d5c2985..6f4908a 100644 --- a/src/shared/operations.js +++ b/src/shared/operations.js @@ -36,6 +36,7 @@ export default { TAB_REOPEN: 'tabs.reopen', TAB_PREV: 'tabs.prev', TAB_NEXT: 'tabs.next', + TAB_FIRST: 'tabs.first', TAB_RELOAD: 'tabs.reload', // Zooms -- cgit v1.2.3 From 026fee32d6e8d28c3abddfd7edd245c2d6b1c3ea Mon Sep 17 00:00:00 2001 From: Daniel Campoverde Date: Sun, 29 Oct 2017 21:56:59 -0500 Subject: Default TAB_FIRST mapping --- src/background/tabs.js | 2 +- src/shared/default-settings.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/background/tabs.js b/src/background/tabs.js index eaff0f6..423e84a 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -101,5 +101,5 @@ const reload = (current, cache) => { export { closeTab, reopenTab, selectAt, selectByKeyword, getCompletions, - selectPrevTab, selectNextTab, reload + selectPrevTab, selectNextTab, selectFirstTab, reload }; diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js index 60e7876..e70c7dd 100644 --- a/src/shared/default-settings.js +++ b/src/shared/default-settings.js @@ -28,6 +28,7 @@ export default { "u": { "type": "tabs.reopen" }, "K": { "type": "tabs.prev", "count": 1 }, "J": { "type": "tabs.next", "count": 1 }, + "g0": { "type": "tabs.first", "count": 1 }, "r": { "type": "tabs.reload", "cache": false }, "R": { "type": "tabs.reload", "cache": true }, "zi": { "type": "zoom.in" }, -- cgit v1.2.3 From 2c97f8a4f3b31d38922783b8f5e6237da33ce86b Mon Sep 17 00:00:00 2001 From: Daniel Campoverde Date: Sun, 29 Oct 2017 22:01:12 -0500 Subject: Fix selectFirstTab --- src/background/tabs.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/background/tabs.js b/src/background/tabs.js index 423e84a..2028503 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -80,8 +80,10 @@ const selectNextTab = (current, count) => { }; const selectFirstTab = (current, count) => { - let id = tabs[0].id; - return browser.tabs.update(id, { active: true }); + return browser.tabs.query({ currentWindow: true }).then((tabs) => { + let id = tabs[0].id; + return browser.tabs.update(id, { active: true }); + }); }; // const selectFirstTab = (current, count) => { -- cgit v1.2.3 From d0df1a05a17fd3b30eba215b0f163042878a56b2 Mon Sep 17 00:00:00 2001 From: Daniel Campoverde Date: Sun, 29 Oct 2017 22:03:46 -0500 Subject: Clean up TAB_FIRST operation --- src/background/actions/operation.js | 2 +- src/background/tabs.js | 4 ++-- src/shared/default-settings.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index 7c0df4e..074157b 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -21,7 +21,7 @@ const exec = (operation, tab) => { case operations.TAB_NEXT: return tabs.selectNextTab(tab.index, operation.count); case operations.TAB_FIRST: - return tabs.selectFirstTab(tab.index, operation.count); + return tabs.selectFirstTab(); case operations.TAB_RELOAD: return tabs.reload(tab, operation.cache); case operations.ZOOM_IN: diff --git a/src/background/tabs.js b/src/background/tabs.js index 2028503..0567e68 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -79,14 +79,14 @@ const selectNextTab = (current, count) => { }); }; -const selectFirstTab = (current, count) => { +const selectFirstTab = () => { return browser.tabs.query({ currentWindow: true }).then((tabs) => { let id = tabs[0].id; return browser.tabs.update(id, { active: true }); }); }; -// const selectFirstTab = (current, count) => { +// const selectLastTab = (current, count) => { // return browser.tabs.query({ currentWindow: true }).then((tabs) => { // let select = tabs.length; // let id = tabs[select].id; diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js index e70c7dd..a929643 100644 --- a/src/shared/default-settings.js +++ b/src/shared/default-settings.js @@ -28,7 +28,7 @@ export default { "u": { "type": "tabs.reopen" }, "K": { "type": "tabs.prev", "count": 1 }, "J": { "type": "tabs.next", "count": 1 }, - "g0": { "type": "tabs.first", "count": 1 }, + "g0": { "type": "tabs.first"}, "r": { "type": "tabs.reload", "cache": false }, "R": { "type": "tabs.reload", "cache": true }, "zi": { "type": "zoom.in" }, -- cgit v1.2.3 From ef98e196abb21f3ebcb884ca623fddf520f18e70 Mon Sep 17 00:00:00 2001 From: Daniel Campoverde Date: Sun, 29 Oct 2017 22:26:08 -0500 Subject: Add TAB_LAST operation --- src/background/actions/operation.js | 2 ++ src/background/tabs.js | 15 +++++++-------- src/shared/default-settings.js | 3 ++- src/shared/operations.js | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index 074157b..a5094c0 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -22,6 +22,8 @@ const exec = (operation, tab) => { return tabs.selectNextTab(tab.index, operation.count); case operations.TAB_FIRST: return tabs.selectFirstTab(); + case operations.TAB_LAST: + return tabs.selectLastTab(); case operations.TAB_RELOAD: return tabs.reload(tab, operation.cache); case operations.ZOOM_IN: diff --git a/src/background/tabs.js b/src/background/tabs.js index 0567e68..020c826 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -86,13 +86,12 @@ const selectFirstTab = () => { }); }; -// const selectLastTab = (current, count) => { -// return browser.tabs.query({ currentWindow: true }).then((tabs) => { -// let select = tabs.length; -// let id = tabs[select].id; -// return browser.tabs.update(id, { active: true }); -// }); -// }; +const selectLastTab = () => { + return browser.tabs.query({ currentWindow: true }).then((tabs) => { + let id = tabs[tabs.length - 1].id; + return browser.tabs.update(id, { active: true }); + }); +}; const reload = (current, cache) => { return browser.tabs.reload( @@ -103,5 +102,5 @@ const reload = (current, cache) => { export { closeTab, reopenTab, selectAt, selectByKeyword, getCompletions, - selectPrevTab, selectNextTab, selectFirstTab, reload + selectPrevTab, selectNextTab, selectFirstTab, selectLastTab, reload }; diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js index a929643..49eee37 100644 --- a/src/shared/default-settings.js +++ b/src/shared/default-settings.js @@ -28,7 +28,8 @@ export default { "u": { "type": "tabs.reopen" }, "K": { "type": "tabs.prev", "count": 1 }, "J": { "type": "tabs.next", "count": 1 }, - "g0": { "type": "tabs.first"}, + "g0": { "type": "tabs.first" }, + "g$": { "type": "tabs.last" }, "r": { "type": "tabs.reload", "cache": false }, "R": { "type": "tabs.reload", "cache": true }, "zi": { "type": "zoom.in" }, diff --git a/src/shared/operations.js b/src/shared/operations.js index 6f4908a..1519e90 100644 --- a/src/shared/operations.js +++ b/src/shared/operations.js @@ -37,6 +37,7 @@ export default { TAB_PREV: 'tabs.prev', TAB_NEXT: 'tabs.next', TAB_FIRST: 'tabs.first', + TAB_LAST: 'tabs.last', TAB_RELOAD: 'tabs.reload', // Zooms -- cgit v1.2.3