aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/link_hints.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'content_scripts/link_hints.coffee')
-rw-r--r--content_scripts/link_hints.coffee8
1 files changed, 7 insertions, 1 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 0f2425c3..2548abb3 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -326,6 +326,8 @@ class LinkHintsMode
else if localHintDescriptor.reason == "Scroll."
# Tell the scroller that this is the activated element.
handlerStack.bubbleEvent "DOMActivate", target: clickEl
+ else if localHintDescriptor.reason == "Open."
+ clickEl.open = !clickEl.open
else if DomUtils.isSelectable clickEl
window.focus()
DomUtils.simulateSelect clickEl
@@ -621,7 +623,8 @@ LocalHints =
when "button", "select"
isClickable ||= not element.disabled
when "label"
- isClickable ||= element.control? and (@getVisibleClickable element.control).length == 0
+ isClickable ||= element.control? and not element.control.disabled and
+ (@getVisibleClickable element.control).length == 0
when "body"
isClickable ||=
if element == document.body and not windowIsFocused() and
@@ -637,6 +640,9 @@ LocalHints =
isClickable ||=
if element.clientHeight < element.scrollHeight and Scroller.isScrollableElement element
reason = "Scroll."
+ when "details"
+ isClickable = true
+ reason = "Open."
# An element with a class name containing the text "button" might be clickable. However, real clickables
# are often wrapped in elements with such class names. So, when we find clickables based only on their