aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/mode_insert.coffee3
-rw-r--r--content_scripts/vimium_frontend.coffee1
-rw-r--r--lib/dom_utils.coffee8
-rw-r--r--pages/help_dialog.coffee3
-rw-r--r--pages/logging.html2
-rw-r--r--tests/dom_tests/dom_tests.coffee5
6 files changed, 8 insertions, 14 deletions
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index 93615b8f..9037b05a 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -54,8 +54,7 @@ class InsertMode extends Mode
# We can't rely on focus and blur events arriving in the expected order. When the active element
# changes, we might get "focus" before "blur". We track the active element in @insertModeLock, and
# exit only when that element blurs.
- # We don't exit if we're running under edit mode. Edit mode itself will handles that case.
- @exit event, target if @insertModeLock and target == @insertModeLock and not @options.parentMode
+ @exit event, target if @insertModeLock and target == @insertModeLock
"focus": (event) => @alwaysContinueBubbling =>
if @insertModeLock != event.target and DomUtils.isFocusable event.target
@activateOnElement event.target
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index b7e097e1..4cebf4e4 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -649,7 +649,6 @@ followLink = (linkElement) ->
# if we can click on it, don't simply set location.href: some next/prev links are meant to trigger AJAX
# calls, like the 'more' button on GitHub's newsfeed.
linkElement.scrollIntoView()
- linkElement.focus()
DomUtils.simulateClick(linkElement)
#
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index db90c43a..553287af 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -171,6 +171,7 @@ DomUtils =
# An unknown type will be treated the same as "text", in the same way that the browser does.
#
isSelectable: (element) ->
+ return false unless element instanceof Element
unselectableTypes = ["button", "checkbox", "color", "file", "hidden", "image", "radio", "reset", "submit"]
(element.nodeName.toLowerCase() == "input" && unselectableTypes.indexOf(element.type) == -1) ||
element.nodeName.toLowerCase() == "textarea" || element.isContentEditable
@@ -179,12 +180,7 @@ DomUtils =
# enter insert mode if focused. Also note that the "contentEditable" attribute can be set on any element
# which makes it a rich text editor, like the notes on jjot.com.
isEditable: (element) ->
- return true if element.isContentEditable
- nodeName = element.nodeName?.toLowerCase()
- # Use a blacklist instead of a whitelist because new form controls are still being implemented for html5.
- if nodeName == "input" and element.type not in ["radio", "checkbox"]
- return true
- nodeName in ["textarea", "select"]
+ (@isSelectable element) or element.nodeName?.toLowerCase() == "select"
# Embedded elements like Flash and quicktime players can obtain focus.
isEmbed: (element) ->
diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee
index 019fba9b..1b9420c3 100644
--- a/pages/help_dialog.coffee
+++ b/pages/help_dialog.coffee
@@ -38,9 +38,6 @@ HelpDialog =
@showAdvancedCommands(@getShowAdvancedCommands())
- # Simulating a click on the help dialog makes it the active element for scrolling.
- DomUtils.simulateClick document.getElementById "vimiumHelpDialog"
-
hide: -> UIComponentServer.postMessage "hide"
toggle: (html) ->
diff --git a/pages/logging.html b/pages/logging.html
index b69902b3..78095e4b 100644
--- a/pages/logging.html
+++ b/pages/logging.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>Vimium Options</title>
+ <title>Vimium Logging</title>
<script src="content_script_loader.js"></script>
<script src="logging.js"></script>
<style type="text/css">
diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee
index 1d4703c1..8a96913f 100644
--- a/tests/dom_tests/dom_tests.coffee
+++ b/tests/dom_tests/dom_tests.coffee
@@ -104,7 +104,10 @@ context "Test link hints for focusing input elements correctly",
stubSettings "linkHintCharacters", "ab"
# Every HTML5 input type except for hidden. We should be able to activate all of them with link hints.
- inputTypes = ["button", "checkbox", "color", "date", "datetime", "datetime-local", "email", "file",
+ #
+ # TODO: Re-insert "color" into the inputTypes list when PhantomJS issue #13979 is fixed and integrated.
+ # Ref: https://github.com/ariya/phantomjs/issues/13979, and Vimium #1944.
+ inputTypes = ["button", "checkbox", "date", "datetime", "datetime-local", "email", "file",
"image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text",
"time", "url", "week"]