     matchString = @hintKeystrokeQueue.join ""
     linksMatched: hintMarkers.filter (linkMarker) -> linkMarker.hintString.startsWith matchString
 
-  pushKeyChar: (keyChar) -> @hintKeystrokeQueue.push keyChar
+  pushKeyChar: (keyChar, keydownKeyChar) ->
+    @hintKeystrokeQueue.push (if @useKeydown then keydownKeyChar else keyChar)
   popKeyChar: -> @hintKeystrokeQueue.pop()
 
 # Use numbers (usually) for hints, and also filter links by their text.


    keyChar = String.fromCharCode(event.charCode).toLowerCase()
    if keyChar
      @markerMatcher.pushKeyChar keyChar
      @updateVisibleMarkers hintMarkers

    # We've handled the event, so suppress it.

  logXOfBase: (x, base) -> Math.log(x) / Math.log(base)

  constructor: ->
    @linkHintCharacters = Settings.get "linkHintCharacters"
    # We use the keyChar from keydown if the link-hint characters are all "a-z".  This is the default, and
    # preserves the legacy behavior (which always used keydown) for users which are familiar with that
    # behavior.  Otherwise, we use keyChar from keypress, which admits non-Latin characters. See #1722.
    @useKeydown = /^[a-z]*$/.test @linkHintCharacters
    @activateOnEnter = false
    @hintKeystrokeQueue = []

