aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2015-02-02 08:27:27 +0000
committerStephen Blott2015-02-02 08:27:27 +0000
commitedfe3d0ce2726e90559b200f607dc0dec48526b9 (patch)
tree61319fd770c7d70a1fee52236871fcd37bf3cf28
parent2690f1df7b568de66354b3c3bb6baacf896b951c (diff)
downloadvimium-edfe3d0ce2726e90559b200f607dc0dec48526b9.tar.bz2
Visual/edit modes: WIP, scrolling content editable.
-rw-r--r--content_scripts/mode_visual_edit.coffee10
-rw-r--r--content_scripts/scroller.coffee2
2 files changed, 11 insertions, 1 deletions
diff --git a/content_scripts/mode_visual_edit.coffee b/content_scripts/mode_visual_edit.coffee
index 82e2b189..749559f7 100644
--- a/content_scripts/mode_visual_edit.coffee
+++ b/content_scripts/mode_visual_edit.coffee
@@ -437,7 +437,15 @@ class Movement extends CountPrefix
if @element and DomUtils.isEditable @element
if @element.clientHeight < @element.scrollHeight
if @element.isContentEditable
- # Help(smblott)! How do we do this? This case matters for Gmail and Google's inbox.
+ # WIP...
+ elementWithFocus = DomUtils.getElementWithFocus @selection, @getDirection() == backward
+ console.log elementWithFocus.innerHTML
+ position = elementWithFocus.getClientRects()[0].top - @element.getClientRects()[0].top
+ console.log "top", position
+ Scroller.scrollToPosition @element, position, 0
+ position = elementWithFocus.getClientRects()[0].bottom - @element.getClientRects()[0].top
+ console.log "bottom", position
+ Scroller.scrollToPosition @element, position, 0
else
position = if @getDirection() == backward then @element.selectionStart else @element.selectionEnd
coords = DomUtils.getCaretCoordinates @element, position
diff --git a/content_scripts/scroller.coffee b/content_scripts/scroller.coffee
index f26f0b73..6d224814 100644
--- a/content_scripts/scroller.coffee
+++ b/content_scripts/scroller.coffee
@@ -265,10 +265,12 @@ Scroller =
# Scroll down, "y".
amount = top + 20 - (element.clientHeight + element.scrollTop)
+ console.log "y down", amount, 0 < amount
CoreScroller.scroll element, "y", amount, false if 0 < amount
# Scroll up, "y".
amount = top - (element.scrollTop) - 5
+ console.log "y up", amount, amount < 0
CoreScroller.scroll element, "y", amount, false if amount < 0
# Scroll down, "x".