From ae6dac0d3df014a48d7f9e953180b0a1b380f3f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferenc=20Ag=C3=B3cs?= Date: Tue, 1 Mar 2022 19:38:00 +0100 Subject: [PATCH] don't expand when making the window narrower, don't collapse when making the window wider --- main.ts | 38 +++++++++++++++++++++++++------------- manifest.json | 2 +- versions.json | 2 -- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/main.ts b/main.ts index b110603..3cfa071 100644 --- a/main.ts +++ b/main.ts @@ -12,6 +12,7 @@ const DEFAULT_SETTINGS: HideSidebarsWhenNarrowSettings = { export default class HideSidebarsWhenNarrowPlugin extends Plugin { settings: HideSidebarsWhenNarrowSettings; + previousWidth: number; async onload() { console.log('loading HideSideBarsWhenNarrowPlugin'); @@ -21,6 +22,7 @@ export default class HideSidebarsWhenNarrowPlugin extends Plugin { const debouncedToggle = debounce(this.toggleSidebars.bind(this), 80); this.app.workspace.onLayoutReady(() => { + this.previousWidth = window.innerWidth; this.toggleSidebars(); this.registerDomEvent(window, 'resize', (_) => { debouncedToggle(); @@ -30,20 +32,30 @@ export default class HideSidebarsWhenNarrowPlugin extends Plugin { toggleSidebars() { const width = window.innerWidth; - if (width < this.settings.leftMinWidth) { - !this.app.workspace.leftSplit.collapsed && - this.app.workspace.leftSplit.collapse(); - } else { - this.app.workspace.leftSplit.collapsed && - this.app.workspace.leftSplit.expand(); + + if (width < this.settings.leftMinWidth && + width < this.previousWidth && + !this.app.workspace.leftSplit.collapsed) { + this.app.workspace.leftSplit.collapse(); + } + else if (width > this.settings.leftMinWidth && + width > this.previousWidth && + this.app.workspace.leftSplit.collapsed) { + this.app.workspace.leftSplit.expand(); } - if (width < this.settings.rightMinWidth) { - !this.app.workspace.rightSplit.collapsed && - this.app.workspace.rightSplit.collapse(); - } else { - this.app.workspace.rightSplit.collapsed && - this.app.workspace.rightSplit.expand(); + + if (width < this.settings.rightMinWidth && + width < this.previousWidth && + !this.app.workspace.rightSplit.collapsed) { + this.app.workspace.rightSplit.collapse(); } + else if (width > this.settings.rightMinWidth && + width > this.previousWidth && + this.app.workspace.rightSplit.collapsed) { + this.app.workspace.rightSplit.expand(); + } + + this.previousWidth = width; } async loadSettings() { @@ -65,7 +77,7 @@ class SettingsTab extends PluginSettingTab { } display(): void { - let { containerEl } = this; + const { containerEl } = this; containerEl.empty(); diff --git a/manifest.json b/manifest.json index beb4aae..daf5624 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-hide-sidebars-when-narrow", "name": "Hide Sidebars When Narrow", - "version": "1.0.2", + "version": "1.0.3", "minAppVersion": "0.12.12", "description": "Automatically hides the sidebars when your window is narrow.", "author": "Michael Hanson", diff --git a/versions.json b/versions.json index f328453..1e044d4 100644 --- a/versions.json +++ b/versions.json @@ -1,5 +1,3 @@ { - "1.0.2": "0.12.12", - "1.0.1": "0.12.12", "1.0.0": "0.12.12" }