diff options
| author | Jez Ng | 2012-10-26 13:27:37 -0400 |
|---|---|---|
| committer | Jez Ng | 2012-10-29 18:28:46 -0400 |
| commit | aeb455a577c0a20684f357ff737203b5cb419cd4 (patch) | |
| tree | 184db85bb1569360854c4c2814634f1c580efe9b /background_scripts/marks.coffee | |
| parent | 76622cd99cf671531cfa21c5d6243f3e4e185116 (diff) | |
| download | vimium-aeb455a577c0a20684f357ff737203b5cb419cd4.tar.bz2 | |
Implement marks.
Diffstat (limited to 'background_scripts/marks.coffee')
| -rw-r--r-- | background_scripts/marks.coffee | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/background_scripts/marks.coffee b/background_scripts/marks.coffee new file mode 100644 index 00000000..5b38a381 --- /dev/null +++ b/background_scripts/marks.coffee @@ -0,0 +1,34 @@ +root = window.Marks = {} + +marks = {} + +root.create = (req, sender) -> + marks[req.markName] = + tabId: sender.tab.id + scrollX: req.scrollX + scrollY: req.scrollY + +chrome.tabs.onUpdated.addListener (tabId, changeInfo, tab) -> + if changeInfo.url? + removeMarksForTab tabId + +chrome.tabs.onRemoved.addListener (tabId, removeInfo) -> + # XXX(jez): what about restored tabs? + removeMarksForTab tabId + +removeMarksForTab = (id) -> + for markName, mark of marks + if mark.tabId is id + delete marks[markName] + +root.goto = (req, sender) -> + mark = marks[req.markName] + chrome.tabs.update mark.tabId, selected: true + chrome.tabs.sendRequest mark.tabId, + name: "setScrollPosition" + scrollX: mark.scrollX + scrollY: mark.scrollY + chrome.tabs.sendRequest mark.tabId, + name: "showHUDforDuration", + text: "Jumped to global mark '#{req.markName}'" + duration: 1000 |
