aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/vimium_frontend.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-06-03 15:27:45 +0100
committerStephen Blott2015-06-03 15:27:45 +0100
commit291e7fd67de9e1c4bd0bc5048ab7344424f19b30 (patch)
tree94a39135c02e7d2a6d8822ad8a618463b9f1c0e4 /content_scripts/vimium_frontend.coffee
parente79fe062bc84b1530ec266a12f9323aa53cb89e4 (diff)
downloadvimium-291e7fd67de9e1c4bd0bc5048ab7344424f19b30.tar.bz2
Re-implement Marks, incl `` binding.
Diffstat (limited to 'content_scripts/vimium_frontend.coffee')
-rw-r--r--content_scripts/vimium_frontend.coffee17
1 files changed, 13 insertions, 4 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index 7ad75514..9ff9b6db 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -241,9 +241,10 @@ unregisterFrame = ->
tab_is_closing: DomUtils.isTopFrame()
executePageCommand = (request) ->
+ commandType = request.command.split(".")[0]
# Vomnibar commands are handled in the tab's main/top frame. They are handled even if Vimium is otherwise
# disabled in the frame.
- if request.command.split(".")[0] == "Vomnibar"
+ if commandType == "Vomnibar"
if DomUtils.isTopFrame()
# We pass the frameId from request. That's the frame which originated the request, so that's the frame
# which should receive the focus when the vomnibar closes.
@@ -254,7 +255,9 @@ executePageCommand = (request) ->
# All other commands are handled in their frame (but only if Vimium is enabled).
return unless frameId == request.frameId and isEnabledForUrl
- if request.registryEntry.passCountToFunction
+ if commandType == "Marks"
+ Utils.invokeCommandString request.command, [request.registryEntry]
+ else if request.registryEntry.passCountToFunction
Utils.invokeCommandString(request.command, [request.count])
else
Utils.invokeCommandString(request.command) for i in [0...request.count]
@@ -299,8 +302,12 @@ window.focusThisFrame = do ->
setTimeout (-> highlightedFrameElement.remove()), 200
extend window,
- scrollToBottom: -> Scroller.scrollTo "y", "max"
- scrollToTop: -> Scroller.scrollTo "y", 0
+ scrollToBottom: ->
+ Marks.markPosition()
+ Scroller.scrollTo "y", "max"
+ scrollToTop: ->
+ Marks.markPosition()
+ Scroller.scrollTo "y", 0
scrollToLeft: -> Scroller.scrollTo "x", 0
scrollToRight: -> Scroller.scrollTo "x", "max"
scrollUp: -> Scroller.scrollBy "y", -1 * Settings.get("scrollStepSize")
@@ -861,6 +868,7 @@ window.getFindModeQuery = (backwards) ->
findModeQuery.parsedQuery
findAndFocus = (backwards) ->
+ Marks.markPosition()
query = getFindModeQuery backwards
findModeQueryHasResults =
@@ -1007,6 +1015,7 @@ findModeRestoreSelection = (range = findModeInitialRange) ->
# Enters find mode. Returns the new find-mode instance.
window.enterFindMode = (options = {}) ->
+ Marks.markPosition()
# Save the selection, so performFindInPlace can restore it.
findModeSaveSelection()
findModeQuery = rawQuery: ""