diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index 77fc5fd2..96379883 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -173,8 +173,8 @@ export default class CodeEditor extends React.Component { } insertImage (imageMd) { - const cm = this.editor - cm.setValue(cm.getValue() + imageMd) + const textarea = this.editor.getInputField() + textarea.value = textarea.value.substr(0, textarea.selectionStart) + imageMd + textarea.value.substr(textarea.selectionEnd) } render () { diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index 733f198f..c8e9374b 100644 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -181,6 +181,8 @@ export default class MarkdownPreview extends React.Component { this.refs.root.contentWindow.document.addEventListener('mousedown', this.mouseDownHandler) this.refs.root.contentWindow.document.addEventListener('mouseup', this.mouseUpHandler) + this.refs.root.contentWindow.document.addEventListener('drop', this.preventImageDroppedHandler) + this.refs.root.contentWindow.document.addEventListener('dragover', this.preventImageDroppedHandler) eventEmitter.on('export:save-text', this.saveAsTextHandler) eventEmitter.on('export:save-md', this.saveAsMdHandler) } @@ -189,6 +191,8 @@ export default class MarkdownPreview extends React.Component { this.refs.root.contentWindow.document.body.removeEventListener('contextmenu', this.contextMenuHandler) this.refs.root.contentWindow.document.removeEventListener('mousedown', this.mouseDownHandler) this.refs.root.contentWindow.document.removeEventListener('mouseup', this.mouseUpHandler) + this.refs.root.contentWindow.document.removeEventListener('drop', this.preventImageDroppedHandler) + this.refs.root.contentWindow.document.removeEventListener('dragover', this.preventImageDroppedHandler) eventEmitter.off('export:save-text', this.saveAsTextHandler) eventEmitter.off('export:save-md', this.saveAsMdHandler) } @@ -325,6 +329,11 @@ export default class MarkdownPreview extends React.Component { } } + preventImageDroppedHandler(e) { + e.preventDefault() + e.stopPropagation() + } + render () { let { className, style, tabIndex } = this.props return (