aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/vimium_frontend.coffee8
-rw-r--r--tests/dom_tests/dom_tests.coffee5
2 files changed, 8 insertions, 5 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index 729a21bd..5d56ad5b 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -337,11 +337,9 @@ extend window,
focusInput: do ->
# Track the most recently focused input element.
recentlyFocusedElement = null
- handlerStack.push
- _name: "focus-input-tracker"
- focus: (event) ->
- recentlyFocusedElement = event.target if DomUtils.isEditable event.target
- true
+ window.addEventListener "focus",
+ (event) -> recentlyFocusedElement = event.target if DomUtils.isEditable event.target
+ , true
(count) ->
# Focus the first input element on the page, and create overlays to highlight all the input elements, with
diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee
index b0ee1a66..11fbe11f 100644
--- a/tests/dom_tests/dom_tests.coffee
+++ b/tests/dom_tests/dom_tests.coffee
@@ -218,6 +218,11 @@ context "Input focus",
focusInput 100
assert.isTrue InsertMode.permanentInstance.isActive()
+ should "activate the most recently-selected input if the count is 1", ->
+ focusInput 3
+ focusInput 1
+ assert.equal "third", document.activeElement.id
+
should "not trigger insert if there are no inputs", ->
document.getElementById("test-div").innerHTML = ""
focusInput 1