 
     else
       @tabCount = previousTabCount if event.ctrlKey or event.metaKey or event.altKey
-      keyChar =
-        if Settings.get "filterLinkHints"
-          KeyboardUtils.getKeyChar(event)
-        else
-          KeyboardUtils.getKeyChar(event).toLowerCase()
       unless event.repeat
+        keyChar =
+          if Settings.get "filterLinkHints"
+            KeyboardUtils.getKeyChar(event)
+          else
+            KeyboardUtils.getKeyChar(event).toLowerCase()
         if keyChar
           keyChar = " " if keyChar == "space"
           if keyChar.length == 1

# Use characters for hints, and also filter links by their text.
class FilterHints
  constructor: ->
    @linkHintNumbers = Settings.get "linkHintNumbers"
    @hintKeystrokeQueue = []
    @linkTextKeystrokeQueue = []
    @activeHintMarker = null

    previousTabCount = @tabCount
    @tabCount = 0

    # NOTE(smblott) The modifier behaviour here applies only to alphabet hints.
    if event.key in ["Control", "Shift"] and not Settings.get("filterLinkHints") and
      @mode in [ OPEN_IN_CURRENT_TAB, OPEN_WITH_QUEUE, OPEN_IN_NEW_BG_TAB, OPEN_IN_NEW_FG_TAB ]
        @tabCount = previousTabCount
        # Toggle whether to open the link in a new or current tab.
