       # Block keyboard events while the user is still typing.  The intention is to prevent the user from
       # inadvertently launching Vimium commands when (over-)typing the link text.
       installKeyBoardBlocker (callback) -> new TypingProtector 200, callback
-    else
-      DomUtils.flashRect linkMatched.rect if linkMatched.hint.frameId == frameId
+    else if linkMatched.hint.frameId == frameId
+      DomUtils.flashRect linkMatched.rect
       HintCoordinator.sendMessage "exit"
 
   #

      if document.hasFocus()
        startKeyboardBlocker -> HintCoordinator.sendMessage "exit"

    HintCoordinator.onExit.push => @deactivateMode()
    if userMightOverType and Settings.get "waitForEnterForFilteredHints"
      installKeyBoardBlocker (callback) -> new WaitForEnter callback

      {rect: hint.rect, linkText: hint.linkText, showLinkText: hint.showLinkText, hasHref: hint.hasHref,
        localIndex, frameId}

  # We activate LinkHintsMode() in every frame, and provide every frame with exactly the same hints.  We also
  # propagate the key state between frames.  Therefore, the hint-selection process proceeds in lock step in
  # every frame, the linkHintsMode arrives in the samme state in every frame.
  activateLinkHintsMode: ({hints, modeIndex, frameId: activateModeFrameId}) ->
    @onExit = [] unless frameId == activateModeFrameId
    @linkHintsMode = new LinkHintsMode hints, availableModes[modeIndex]
