   display:(o = @getOptions())->
 
     # converts NESW-Values to topbottomleftright and retains them in @getOptions
+    KDView.appendToDOMBody this
+    @getSingleton("windowController").addLayer this
     o = @translateCompassDirections o if o.gravity
     o.gravity = null
 
     @setClass 'in' if o.animate
-    @show()
-    @visible = yes
-    KD.getSingleton('windowController').disableScroll()
-    @setPosition o
+    @utils.defer => @setPosition o
 
   getCorrectPositionCoordinates:(o={},positionValues,callback=noop)->
     # values that can/will be used in all the submethods


  addListeners:->

    o = @getOptions()

    if o.events
      @parentView.bindEvent name for name in o.events

    @parentView.on 'mouseenter', =>
      if @parentView.tooltip
        @show()
        @avoidDestroy = yes

    unless o.selector
      @parentView.on 'mouseleave', =>
        @avoidDestroy = no
        @delayedRemove 40

    @on 'mouseenter', =>
      @avoidDestroy = yes

    @on 'mouseleave', (event)=>
      return if $(event.target).is @parentView.$()
      @avoidDestroy = no
      @delayedRemove()

    @on 'MouseEnteredAnchor', =>
      @avoidDestroy = yes
      @delayedDisplay()

    @on 'MouseLeftAnchor', =>
      @avoidDestroy = no
      @delayedRemove()

    @on 'ReceivedClickElsewhere', @bound "remove"

  isCurrentlyRemovable:-> @avoidDestroy

  setView: (childView) ->
    return unless childView


  getView:-> @childView

  destroy:->

    @parentView.tooltip = null
    delete @parentView.tooltip
    super

  translateCompassDirections:(o)->

    {placement,gravity} = o
