     clearTimeout @_showTimeout
     clearTimeout @_showDelayTimeout
     @_mutationObserver?.disconnect()
+    @_enteredTooltip = false
 
   render: =>
     <div className="tooltip-wrap #{@state.pos}" style={@_positionStyles()}>

  _onTooltipEnter: (target) =>
    # https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
    @_mutationObserver?.disconnect()
    @_mutationObserver = new MutationObserver @_onTooltipLeave
    @_mutationObserver.observe(target.parentNode, attributes: true, subtree: true, childList: true)

    @_lastTarget = target

    if elWithTooltip and DOMUtils.nodeIsVisible(elWithTooltip)
      if elWithTooltip isnt @_lastTarget
        @_onTooltipEnter(elWithTooltip)
    else if @state.display
      @_hideTooltip()

  onMouseOut: (e) =>
    if @_elementWithTooltip(e.fromElement) and not @_elementWithTooltip(e.toElement)
      @_onTooltipLeave()

  onMouseDown: (e) =>
    if @state.display
      @_hideTooltip()

  _elementWithTooltip: (target) =>
    while target
