aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2017-10-09 21:24:01 +0900
committerGitHub <noreply@github.com>2017-10-09 21:24:01 +0900
commitb580ef8170a31f7cbef3103d1017f89a6f105319 (patch)
treeaaba38ee6a4a7443a5b60b189444f4e02d4c248f
parent447466808f484d4baa6b285f2dbcaf1920db5498 (diff)
parentcf36bf192ccbc6ffd175e4dd397b4a9140b7f28b (diff)
Merge pull request #28 from ueokande/horizonal-scroll
Horizonal scroll
-rw-r--r--src/background/components/background.js4
-rw-r--r--src/content/actions/operation.js10
-rw-r--r--src/content/scrolls.js20
-rw-r--r--src/shared/default-settings.js10
-rw-r--r--src/shared/operations.js3
5 files changed, 30 insertions, 17 deletions
diff --git a/src/background/components/background.js b/src/background/components/background.js
index 06b6900..266ad64 100644
--- a/src/background/components/background.js
+++ b/src/background/components/background.js
@@ -43,7 +43,7 @@ export default class BackgroundComponent {
type: messages.CONSOLE_HIDE_COMMAND,
});
case messages.CONSOLE_ENTERED:
- return commands.exec(message.text, this.settings).catch((e) => {
+ return commands.exec(message.text, this.settings.value).catch((e) => {
return browser.tabs.sendMessage(sender.tab.id, {
type: messages.CONSOLE_SHOW_ERROR,
text: e.message,
@@ -52,7 +52,7 @@ export default class BackgroundComponent {
case messages.SETTINGS_QUERY:
return Promise.resolve(this.store.getState().value);
case messages.CONSOLE_QUERY_COMPLETIONS:
- return commands.complete(message.text, this.settings);
+ return commands.complete(message.text, this.settings.value);
case messages.SETTINGS_RELOAD:
this.store.dispatch(settingsActions.load());
return this.broadcastSettingsChanged();
diff --git a/src/content/actions/operation.js b/src/content/actions/operation.js
index 0d5088b..9187514 100644
--- a/src/content/actions/operation.js
+++ b/src/content/actions/operation.js
@@ -8,8 +8,10 @@ import * as consoleFrames from 'content/console-frames';
const exec = (operation) => {
switch (operation.type) {
- case operations.SCROLL_LINES:
- return scrolls.scrollLines(window, operation.count);
+ case operations.SCROLL_VERTICALLY:
+ return scrolls.scrollVertically(window, operation.count);
+ case operations.SCROLL_HORIZONALLY:
+ return scrolls.scrollHorizonally(window, operation.count);
case operations.SCROLL_PAGES:
return scrolls.scrollPages(window, operation.count);
case operations.SCROLL_TOP:
@@ -17,9 +19,9 @@ const exec = (operation) => {
case operations.SCROLL_BOTTOM:
return scrolls.scrollBottom(window);
case operations.SCROLL_HOME:
- return scrolls.scrollLeft(window);
+ return scrolls.scrollHome(window);
case operations.SCROLL_END:
- return scrolls.scrollRight(window);
+ return scrolls.scrollEnd(window);
case operations.FOLLOW_START:
return followActions.enable(false);
case operations.NAVIGATE_HISTORY_PREV:
diff --git a/src/content/scrolls.js b/src/content/scrolls.js
index b1cea6f..86ea554 100644
--- a/src/content/scrolls.js
+++ b/src/content/scrolls.js
@@ -1,8 +1,15 @@
-const SCROLL_DELTA = 48;
+const SCROLL_DELTA_X = 48;
+const SCROLL_DELTA_Y = 48;
-const scrollLines = (page, count) => {
+const scrollVertically = (page, count) => {
let x = page.scrollX;
- let y = page.scrollY + SCROLL_DELTA * count;
+ let y = page.scrollY + SCROLL_DELTA_X * count;
+ page.scrollTo(x, y);
+};
+
+const scrollHorizonally = (page, count) => {
+ let x = page.scrollX + SCROLL_DELTA_Y * count;
+ let y = page.scrollY;
page.scrollTo(x, y);
};
@@ -25,18 +32,19 @@ const scrollBottom = (page) => {
page.scrollTo(x, y);
};
-const scrollLeft = (page) => {
+const scrollHome = (page) => {
let x = 0;
let y = page.scrollY;
page.scrollTo(x, y);
};
-const scrollRight = (page) => {
+const scrollEnd = (page) => {
let x = page.scrollMaxX;
let y = page.scrollY;
page.scrollTo(x, y);
};
export {
- scrollLines, scrollPages, scrollTop, scrollBottom, scrollLeft, scrollRight
+ scrollVertically, scrollHorizonally, scrollPages,
+ scrollTop, scrollBottom, scrollHome, scrollEnd
};
diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js
index f287b7a..ceacb50 100644
--- a/src/shared/default-settings.js
+++ b/src/shared/default-settings.js
@@ -11,8 +11,10 @@ export default {
"w": { "type": "command.show.winopen", "alter": false },
"W": { "type": "command.show.winopen", "alter": true },
"b": { "type": "command.show.buffer" },
- "k": { "type": "scroll.lines", "count": -1 },
- "j": { "type": "scroll.lines", "count": 1 },
+ "k": { "type": "scroll.vertically", "count": -1 },
+ "j": { "type": "scroll.vertically", "count": 1 },
+ "h": { "type": "scroll.horizonally", "count": -1 },
+ "l": { "type": "scroll.horizonally", "count": 1 },
"<C-E>": { "type": "scroll.lines", "count": -1 },
"<C-Y>": { "type": "scroll.lines", "count": 1 },
"<C-U>": { "type": "scroll.pages", "count": -0.5 },
@@ -24,8 +26,8 @@ export default {
"$": { "type": "scroll.end" },
"d": { "type": "tabs.close" },
"u": { "type": "tabs.reopen" },
- "h": { "type": "tabs.prev", "count": 1 },
- "l": { "type": "tabs.next", "count": 1 },
+ "K": { "type": "tabs.prev", "count": 1 },
+ "J": { "type": "tabs.next", "count": 1 },
"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 ca62716..0d2a381 100644
--- a/src/shared/operations.js
+++ b/src/shared/operations.js
@@ -7,7 +7,8 @@ export default {
COMMAND_SHOW_BUFFER: 'command.show.buffer',
// Scrolls
- SCROLL_LINES: 'scroll.lines',
+ SCROLL_VERTICALLY: 'scroll.vertically',
+ SCROLL_HORIZONALLY: 'scroll.horizonally',
SCROLL_PAGES: 'scroll.pages',
SCROLL_TOP: 'scroll.top',
SCROLL_BOTTOM: 'scroll.bottom',