 
   componentDidMount: =>
     @setInnerState editableNode: @_editableNode()
-    @_setupListeners()
+    @_setupNonMutationListeners()
     @_mutationObserver.observe(@_editableNode(), @_mutationConfig())
 
   # When we have a composition event in progress, we should not update

  # composition event starts. Without the `_inCompositionEvent` flag
  # stopping the re-render, the asynchronous update request will cause us
  # to re-render and blow away our newly started 2nd composition event.
  _onCompositionStart: =>
    @_inCompositionEvent = true
    @_teardownListeners()

  _onCompositionEnd: =>
    @_inCompositionEvent = false
    @_setupListeners()

  _onShowContextMenu: (event) =>
    @refs["toolbarController"]?.forceClose()

    defaultKeymaps = {}
    return _.extend(defaultKeymaps, @_boundExtensionKeymapHandlers())

  _setupNonMutationListeners: =>
    @_broadcastInnerStateToToolbar = true
    document.addEventListener("selectionchange", @_saveSelection)
    @_editableNode().addEventListener('contextmenu', @_onShowContextMenu)

  _teardownNonMutationListeners: =>
    @_broadcastInnerStateToToolbar = false
    document.removeEventListener("selectionchange", @_saveSelection)
    @_editableNode().removeEventListener('contextmenu', @_onShowContextMenu)
