diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index e31548d0b..466be3fa7 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -20,10 +20,10 @@ class MarkdownEditor extends React.Component { this.supportMdSelectionBold = [16, 17, 186] this.state = { - status: props.config.editor.switchPreview === 'RIGHTCLICK' ? props.config.editor.delfaultStatus : 'PREVIEW', + status: props.config.editor.switchPreview === 'RIGHTCLICK' ? props.config.editor.delfaultStatus : 'CODE', renderValue: props.value, keyPressed: new Set(), - isLocked: false + isLocked: props.isLocked } this.lockEditorCode = () => this.handleLockEditor() @@ -76,6 +76,7 @@ class MarkdownEditor extends React.Component { } handleContextMenu (e) { + if (this.state.isLocked) return const { config } = this.props if (config.editor.switchPreview === 'RIGHTCLICK') { const newStatus = this.state.status === 'PREVIEW' ? 'CODE' : 'PREVIEW' diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index ad7eb5909..040df60bf 100755 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -42,9 +42,10 @@ class MarkdownNoteDetail extends React.Component { content: '', linesHighlighted: [] }, props.note), - isLockButtonShown: false, + isLockButtonShown: props.config.editor.type !== 'SPLIT', isLocked: false, - editorType: props.config.editor.type + editorType: props.config.editor.type, + switchPreview: props.config.editor.switchPreview } this.dispatchTimer = null @@ -65,6 +66,9 @@ class MarkdownNoteDetail extends React.Component { }) ee.on('hotkey:deletenote', this.handleDeleteNote.bind(this)) ee.on('code:generate-toc', this.generateToc) + + // Focus content if using blur or double click + if (this.state.switchPreview === 'BLUR' || this.state.switchPreview === 'DBL_CLICK') this.focus() } componentWillReceiveProps (nextProps) { @@ -294,7 +298,7 @@ class MarkdownNoteDetail extends React.Component { handleToggleLockButton (event, noteStatus) { // first argument event is not used - if (this.props.config.editor.switchPreview === 'BLUR' && noteStatus === 'CODE') { + if (noteStatus === 'CODE') { this.setState({isLockButtonShown: true}) } else { this.setState({isLockButtonShown: false}) @@ -320,7 +324,8 @@ class MarkdownNoteDetail extends React.Component { } handleSwitchMode (type) { - this.setState({ editorType: type }, () => { + // If in split mode, hide the lock button + this.setState({ editorType: type, isLockButtonShown: !(type === 'SPLIT') }, () => { this.focus() const newConfig = Object.assign({}, this.props.config) newConfig.editor.type = type @@ -365,6 +370,7 @@ class MarkdownNoteDetail extends React.Component { noteKey={note.key} linesHighlighted={note.linesHighlighted} onChange={this.handleUpdateContent.bind(this)} + isLocked={this.state.isLocked} ignorePreviewPointerEvents={ignorePreviewPointerEvents} /> } else {