diff options
| author | Shin'ya Ueoka <ueokande@i-beam.org> | 2018-10-12 10:14:33 +0900 | 
|---|---|---|
| committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2018-10-12 10:14:33 +0900 | 
| commit | 003742ec51aa7aea9214442bc0b611e2eb5eaf6e (patch) | |
| tree | 20345e48bd226c1e83a1145721f7ba585a1452aa /src/content | |
| parent | 6e6e306275a8ee5632a22b1e30c807bd5ae9cc7e (diff) | |
Support global marks which select a tab
Diffstat (limited to 'src/content')
| -rw-r--r-- | src/content/actions/mark.js | 20 | ||||
| -rw-r--r-- | src/content/components/common/mark.js | 15 | 
2 files changed, 33 insertions, 2 deletions
| diff --git a/src/content/actions/mark.js b/src/content/actions/mark.js index 1f5174e..712a811 100644 --- a/src/content/actions/mark.js +++ b/src/content/actions/mark.js @@ -1,4 +1,5 @@  import actions from 'content/actions'; +import messages from 'shared/messages';  const startSet = () => {    return { type: actions.MARK_START_SET }; @@ -21,6 +22,25 @@ const setLocal = (key, x, y) => {    };  }; +const setGlobal = (key, x, y) => { +  browser.runtime.sendMessage({ +    type: messages.MARK_SET_GLOBAL, +    key, +    x, +    y, +  }); +  return { type: '' }; +}; + +const jumpGlobal = (key) => { +  browser.runtime.sendMessage({ +    type: messages.MARK_JUMP_GLOBAL, +    key, +  }); +  return { type: '' }; +}; +  export {    startSet, startJump, cancel, setLocal, +  setGlobal, jumpGlobal,  }; diff --git a/src/content/components/common/mark.js b/src/content/components/common/mark.js index 06b2657..ce35afa 100644 --- a/src/content/components/common/mark.js +++ b/src/content/components/common/mark.js @@ -30,8 +30,10 @@ export default class MarkComponent {      if (key.ctrlKey || key.metaKey || key.altKey) {        consoleFrames.postError(window.document, 'Unknown mark'); -    } else if (key.shiftKey) { -      consoleFrames.postError(window.document, 'Globa marks not supported'); +    } else if (key.shiftKey && markStage.setMode) { +      this.doSetGlobal(key); +    } else if (key.shiftKey && markStage.jumpMode) { +      this.doJumpGlobal(key);      } else if (markStage.setMode) {        this.doSet(key);      } else if (markStage.jumpMode) { @@ -56,4 +58,13 @@ export default class MarkComponent {      let { x, y } = marks[key.key];      scrolls.scrollTo(x, y, smoothscroll);    } + +  doSetGlobal(key) { +    let { x, y } = scrolls.getScroll(); +    this.store.dispatch(markActions.setGlobal(key.key, x, y)); +  } + +  doJumpGlobal(key) { +    this.store.dispatch(markActions.jumpGlobal(key.key)); +  }  } | 
