   #    ##     ## ##     ## ##     ## ##       ##
   #    ##     ##  #######  ########  ######## ########
 
+  # Returns the {Minimap} for which this {MinimapElement} was created.
+  #
+  # Returns a {Minimap}.
   getModel: -> @minimap
 
+  # Defines the {Minimap} model for this {MinimapElement} instance.
+  #
+  # minimap - The {Minimap} model for this instance.
   setModel: (@minimap) ->
     @subscriptions.add @minimap.onDidChangeScrollTop => @requestUpdate()
     @subscriptions.add @minimap.onDidChangeScrollLeft => @requestUpdate()

      @canvas.removeEventListener 'mousedown', canvasMousedown
      @visibleArea.removeEventListener 'mousedown', visibleAreaMousedown

  initializeScrollIndicator: ->
    @scrollIndicator = document.createElement('div')
    @scrollIndicator.classList.add 'minimap-scroll-indicator'
    @controls.appendChild(@scrollIndicator)

  disposeScrollIndicator: ->
    @controls.removeChild(@scrollIndicator)
    @scrollIndicator = undefined

  initializeOpenQuickSettings: ->
    return if @openQuickSettings?


      @update()
      @frameRequested = false

  # Internal: Requests an update to be performed on the next frame that will
  # completely redraw the minimap.
  requestForcedUpdate: ->
    @offscreenFirstRow = null
    @offscreenLastRow = null
    @requestUpdate()

  # Internal: Performs the actual {MinimapElement} update.
  update: ->
    return unless @attached and @isVisible() and not @minimap.isDestroyed()

