     doc.write(EmailFixingStyles)
     doc.write("<div id='inbox-html-wrapper' class='#{wrapperClass}'>#{@_emailContent()}</div>")
     doc.close()
-    doc.addEventListener "click", @_onClick
-    doc.addEventListener "keydown", @_onKeydown
+    doc.addEventListener "click", @_onIFrameClick
+    doc.addEventListener "keydown", @_onIFrameKeydown
+    doc.addEventListener "mousedown", @_onIFrameMouseEvent
+    doc.addEventListener "mousemove", @_onIFrameMouseEvent
+    doc.addEventListener "mouseup", @_onIFrameMouseEvent
 
   _setFrameHeight: ->
     _.defer =>

      else
        target = target.parentElement

  _onKeydown: (event) ->
    return if event.metaKey or event.altKey or event.ctrlKey
    @getDOMNode().dispatchEvent(new KeyboardEvent(event.type, event))

    else
      Utils.stripQuotedText(email)

  # The iFrame captures events that take place over it, which causes some
  # interesting behaviors. For example, when you drag and release over the
  # iFrame, the mouseup never fires in the parent window.

  _onIFrameClick: (e) ->
    e.preventDefault()
    e.stopPropagation()
    target = e.target
