       #   animation is like `$.fn.show` but with CSS transitions.
       shouldAnimate:
         resize: on
-      cursorHeight: 6
+      # - `cursorHeight` is the browser's cursor height. We need to know this to
+      #   properly offset the tip to avoid cases of cursor-tip-stem overlap.
+      cursorHeight: 12
       # - Note that the direction data structure must be an array of
       #   `components`, and conventionally with top/bottom first.
       defaultDirection: ['bottom', 'right']

      @wakeByTrigger $trigger, event

    # `_positionToTrigger` will properly update the tip offset per
    # `offsetOnTriggerMouseMove` and `isDirection`. Also note that `cursorHeight`
    # gets factored in.
    _positionToTrigger: ($trigger, mouseEvent) ->
      return no if not mouseEvent?
      offset =
        top: mouseEvent.pageY
        left: mouseEvent.pageX
      offset = @offsetOnTriggerMouseMove(mouseEvent, offset, $trigger) or offset
      if @isDirection('top', $trigger) then offset.top -= @$tip.outerHeight() + @cursorHeight
      if @isDirection('left',  $trigger)
        tipWidth = @$tip.outerWidth()
        triggerWidth = $trigger.outerWidth()

      # Modify base binding.
      $bindTarget.on @evt('truemouseleave'), selector, { selector }, 
        (event) => @_offsetStart = null

    # Extend `_positionToTrigger` to set `cursorHeight` to 0, since it won't
    # need to be factored in if we're snapping.
    _positionToTrigger: ($trigger, mouseEvent, cursorHeight=@cursorHeight) ->
      super $trigger, mouseEvent, 0

    # `onShow` and `afterShow` are implemented such that they make the tip
    # invisible while it's being positioned and then reveal it.
