diff --git a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts index c05ed2d7c..8dbb3e8e4 100644 --- a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts +++ b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts @@ -165,8 +165,7 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { } cleanup(): void { - this.splitInstance?.destroy(); - this.splitInstance = undefined; + this.#destroyResizer(); } async doRefresh(note: FNote | null | undefined) { @@ -189,17 +188,19 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { // Vertical vs horizontal layout const layoutOrientation = (!utils.isMobile() ? options.get("splitEditorOrientation") ?? "horizontal" : "vertical"); - if (this.layoutOrientation === layoutOrientation && this.isReadOnly === isReadOnly) { - return; + if (this.layoutOrientation !== layoutOrientation || this.isReadOnly !== isReadOnly) { + this.$widget + .toggleClass("split-horizontal", !isReadOnly && layoutOrientation === "horizontal") + .toggleClass("split-vertical", !isReadOnly && layoutOrientation === "vertical") + .toggleClass("split-read-only", isReadOnly); + this.layoutOrientation = layoutOrientation as ("horizontal" | "vertical"); + this.isReadOnly = isReadOnly; + this.#destroyResizer(); } - this.$widget - .toggleClass("split-horizontal", !isReadOnly && layoutOrientation === "horizontal") - .toggleClass("split-vertical", !isReadOnly && layoutOrientation === "vertical") - .toggleClass("split-read-only", isReadOnly); - this.layoutOrientation = layoutOrientation as ("horizontal" | "vertical"); - this.isReadOnly = isReadOnly; - this.#setupResizer(); + if (!this.splitInstance) { + this.#setupResizer(); + } } #setupResizer() { @@ -226,6 +227,11 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { } } + #destroyResizer() { + this.splitInstance?.destroy(); + this.splitInstance = undefined; + } + /** * Called upon when the split between the preview and content pane is initialized. Can be used to add additional listeners if needed. */