 class DisplayBufferMarker
   observers: null
   bufferMarkerSubscription: null
-  previousHeadScreenPosition: null
-  previousTailScreenPosition: null
+  headScreenPosition: null
+  tailScreenPosition: null
 
   constructor: ({@id, @displayBuffer}) ->
     @buffer = @displayBuffer.buffer

  observeBufferMarkerIfNeeded: ->
    return if @observers
    @observers = []
    @previousHeadScreenPosition = @getHeadScreenPosition()
    @previousTailScreenPosition = @getTailScreenPosition()
    @bufferMarkerSubscription =
      @buffer.observeMarker @id, ({oldHeadPosition, newHeadPosition, oldTailPosition, newTailPosition, bufferChanged}) =>
        @notifyObservers

    delete @displayBuffer.markers[@id]

  notifyObservers: ({oldHeadBufferPosition, oldTailBufferPosition, bufferChanged}) ->
    oldHeadScreenPosition = @getHeadScreenPosition()
    @headScreenPosition = null
    newHeadScreenPosition = @getHeadScreenPosition()

    oldTailScreenPosition = @getTailScreenPosition()
    @tailScreenPosition = null
    newTailScreenPosition = @getTailScreenPosition()

    return if _.isEqual(newHeadScreenPosition, oldHeadScreenPosition) and _.isEqual(newTailScreenPosition, oldTailScreenPosition)

