From b53999b4ce7ec03b3994c52ae33cb904ce686603 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 24 Nov 2017 15:28:08 +0000 Subject: Localise the logic for handling flash elements. --- content_scripts/link_hints.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'content_scripts') diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 9ab917d1..a7a46e99 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -385,16 +385,18 @@ class LinkHintsMode clickEl.focus() linkActivator clickEl + # If flash elements are created, then this function can be used later to remove them. + removeFlashElements = -> if linkMatched.isLocalMarker {top: viewportTop, left: viewportLeft} = DomUtils.getViewportTopLeft() flashElements = for rect in clickEl.getClientRects() DomUtils.addFlashRect Rect.translate rect, viewportLeft, viewportTop + removeFlashElements = -> DomUtils.removeElement flashEl for flashEl in flashElements # If we're using a keyboard blocker, then the frame with the focus sends the "exit" message, otherwise the # frame containing the matched link does. if userMightOverType - if flashElements? - HintCoordinator.onExit.push -> DomUtils.removeElement flashEl for flashEl in flashElements + HintCoordinator.onExit.push removeFlashElements if windowIsFocused() callback = (isSuccess) -> HintCoordinator.sendMessage "exit", {isSuccess} if Settings.get "waitForEnterForFilteredHints" @@ -402,7 +404,7 @@ class LinkHintsMode else new TypingProtector 200, callback else if linkMatched.isLocalMarker - Utils.setTimeout 400, -> DomUtils.removeElement flashEl for flashEl in flashElements + Utils.setTimeout 400, removeFlashElements HintCoordinator.sendMessage "exit", isSuccess: true # -- cgit v1.2.3