diff --git a/src/actions/actionToggleViewMode.tsx b/src/actions/actionToggleViewMode.tsx index 0808a5d5..d18b5eef 100644 --- a/src/actions/actionToggleViewMode.tsx +++ b/src/actions/actionToggleViewMode.tsx @@ -10,7 +10,6 @@ export const actionToggleViewMode = register({ appState: { ...appState, viewModeEnabled: !this.checked!(appState), - selectedElementIds: {}, }, commitToHistory: false, }; diff --git a/src/components/App.tsx b/src/components/App.tsx index f97a0a8c..146a65b0 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -922,14 +922,12 @@ class App extends React.Component { } if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) { - this.setState( - { viewModeEnabled: !!this.props.viewModeEnabled }, - this.addEventListeners, - ); + this.setState({ viewModeEnabled: !!this.props.viewModeEnabled }); } if (prevState.viewModeEnabled !== this.state.viewModeEnabled) { this.addEventListeners(); + this.deselectElements(); } if (prevProps.zenModeEnabled !== this.props.zenModeEnabled) { @@ -1770,15 +1768,19 @@ class App extends React.Component { excalidrawContainer: this.excalidrawContainerRef.current, }); // deselect all other elements when inserting text + this.deselectElements(); + + // do an initial update to re-initialize element position since we were + // modifying element's x/y for sake of editor (case: syncing to remote) + updateElement(element.text); + } + + private deselectElements() { this.setState({ selectedElementIds: {}, selectedGroupIds: {}, editingGroupId: null, }); - - // do an initial update to re-initialize element position since we were - // modifying element's x/y for sake of editor (case: syncing to remote) - updateElement(element.text); } private getTextElementAtPosition(