diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index 0c2e291ed..65fdb1bc6 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -19,10 +19,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() @@ -75,6 +75,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 b4e7a5b34..eed40cb31 100755 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -41,9 +41,10 @@ class MarkdownNoteDetail extends React.Component { title: '', content: '' }, 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 @@ -63,6 +64,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) { @@ -292,7 +296,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}) @@ -318,7 +322,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 @@ -362,6 +367,7 @@ class MarkdownNoteDetail extends React.Component { storageKey={note.storage} noteKey={note.key} onChange={this.handleUpdateContent.bind(this)} + isLocked={this.state.isLocked} ignorePreviewPointerEvents={ignorePreviewPointerEvents} /> } else {