From eda3ea121078e14e6b5f91d55c76641ccaf85fb3 Mon Sep 17 00:00:00 2001 From: RayJason Date: Tue, 30 Jul 2024 15:44:38 +0800 Subject: [PATCH 1/3] fix: splitview layout view size with hidden view --- packages/dockview-core/src/splitview/splitview.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/dockview-core/src/splitview/splitview.ts b/packages/dockview-core/src/splitview/splitview.ts index 6fd1c2f28..319020458 100644 --- a/packages/dockview-core/src/splitview/splitview.ts +++ b/packages/dockview-core/src/splitview/splitview.ts @@ -811,9 +811,10 @@ export class Splitview { return; } - const sashCount = this.viewItems.length - 1; - const marginReducedSize = - (this.margin * sashCount) / this.viewItems.length; + const visibleViewItemCount = this.viewItems.filter((i) => i.visible).length + + const sashCount = visibleViewItemCount - 1 + const marginReducedSize = (this.margin * sashCount) / visibleViewItemCount let totalLeftOffset = 0; const viewLeftOffsets: number[] = []; From ee74785d7e397f6d29f3379f851c0bc663ef5cd7 Mon Sep 17 00:00:00 2001 From: RayJason Date: Tue, 30 Jul 2024 21:11:36 +0800 Subject: [PATCH 2/3] fix: calc views style --- packages/dockview-core/src/splitview/splitview.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/dockview-core/src/splitview/splitview.ts b/packages/dockview-core/src/splitview/splitview.ts index 319020458..ecbf9c2aa 100644 --- a/packages/dockview-core/src/splitview/splitview.ts +++ b/packages/dockview-core/src/splitview/splitview.ts @@ -819,6 +819,7 @@ export class Splitview { let totalLeftOffset = 0; const viewLeftOffsets: number[] = []; + // Calc sashes style for (let i = 0; i < this.viewItems.length - 1; i++) { totalLeftOffset += this.viewItems[i].size; viewLeftOffsets.push(totalLeftOffset); @@ -837,10 +838,12 @@ export class Splitview { this.sashes[i].container.style.top = `${offset}px`; } } + + // Calc views style this.viewItems.forEach((view, i) => { const size = view.size - marginReducedSize; const offset = - i === 0 + i === 0 || sashCount === 0 ? 0 : viewLeftOffsets[i - 1] + (i / sashCount) * marginReducedSize; From 1cd4251083a18a5c621a211638b27324041c8202 Mon Sep 17 00:00:00 2001 From: RayJason Date: Tue, 30 Jul 2024 23:10:22 +0800 Subject: [PATCH 3/3] fix: mistake of sashes offset when custom gap --- packages/dockview-core/src/splitview/splitview.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dockview-core/src/splitview/splitview.ts b/packages/dockview-core/src/splitview/splitview.ts index ecbf9c2aa..aea494098 100644 --- a/packages/dockview-core/src/splitview/splitview.ts +++ b/packages/dockview-core/src/splitview/splitview.ts @@ -825,7 +825,7 @@ export class Splitview { viewLeftOffsets.push(totalLeftOffset); const offset = Math.min( - Math.max(0, totalLeftOffset - 2), + Math.max(0, totalLeftOffset - (1 + this.margin) / 2), this.size - this.margin );