From c8d32c1668692ef50fa08242a004e8b8b930ddae Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Sat, 17 Aug 2024 00:13:55 -0700 Subject: [PATCH] set min resize size for nodes --- frontend/layout/lib/layoutModel.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/layout/lib/layoutModel.ts b/frontend/layout/lib/layoutModel.ts index 70ed3db68..4243e6061 100644 --- a/frontend/layout/lib/layoutModel.ts +++ b/frontend/layout/lib/layoutModel.ts @@ -46,6 +46,7 @@ interface ResizeContext { } const DefaultGapSizePx = 5; +const MinNodeSizePx = 40; export class LayoutModel { /** @@ -666,6 +667,15 @@ export class LayoutModel { const clientDiff = (this.resizeContext.resizeHandleStartPx - clientPoint) * this.resizeContext.pixelToSizeRatio; const beforeNodeSize = this.resizeContext.beforeNodeStartSize - clientDiff; const afterNodeSize = this.resizeContext.afterNodeStartSize + clientDiff; + + // If either node will be too small after this resize, don't let it happen. + if ( + beforeNodeSize / this.resizeContext.pixelToSizeRatio < MinNodeSizePx || + afterNodeSize / this.resizeContext.pixelToSizeRatio < MinNodeSizePx + ) { + return; + } + const resizeAction: LayoutTreeResizeNodeAction = { type: LayoutTreeActionType.ResizeNode, resizeOperations: [