From 2a631ab75bc23a30f890fa5c557c684225b7bb81 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Fri, 26 Feb 2016 19:52:51 +0000 Subject: Remove outdated blacklist in DomUtils.isEditable, use .isSelectable This fixes #1964. --- lib/dom_utils.coffee | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index db90c43a..7f18e643 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -179,12 +179,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) -> -- cgit v1.2.3 From a3cf3d18e94d5d3f39db3e08fdd05a610f55d684 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Fri, 26 Feb 2016 20:03:17 +0000 Subject: Don't try to evaluate DomUtils.isSelectable on non-elements This stops us from throwing errors when document, window, etc. end up being passed into DomUtils.isSelectable. --- lib/dom_utils.coffee | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 7f18e643..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 -- cgit v1.2.3