     return decompose
 
   _update: ->
+    return false if @innerHTML == @root.innerHTML
     delta = this._trackDelta( =>
       this.doSilently( =>
         @selection.preserve( =>

  applyDelta: (delta, options = {}) ->
    return if delta.isIdentity()
    this.doSilently( =>
      localDelta = this.update()
      if localDelta
        @delta = @delta.compose(localDelta)
        tempDelta = localDelta


  getDelta: ->
    return @delta

  _deleteAt: (index, length) ->
    return if length <= 0
