From 1c14e8fbcec5176a53b7f4923ca8c4237a37b91f Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Fri, 17 Jun 2022 20:37:53 +1000 Subject: Make swept-nodes-area leave space for at least 1 non-leaf Also fix sweep-to-parent setting not being saved. --- src/components/SettingsModal.vue | 2 +- src/layout.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue index 965abc1..595b145 100644 --- a/src/components/SettingsModal.vue +++ b/src/components/SettingsModal.vue @@ -39,7 +39,7 @@ export default defineComponent({ this.$emit('tree-change'); }, onSave(){ - const savedLytOpts = ['tileSpacing', 'minTileSz', 'maxTileSz', 'layoutType', 'sweepMode', ]; + const savedLytOpts = ['tileSpacing', 'minTileSz', 'maxTileSz', 'layoutType', 'sweepMode', 'sweepToParent', ]; for (let prop of savedLytOpts){ localStorage.setItem('lyt ' + prop, String(this.lytOpts[prop as keyof LayoutOptions])); } diff --git a/src/layout.ts b/src/layout.ts index 23f95aa..f371044 100644 --- a/src/layout.ts +++ b/src/layout.ts @@ -629,8 +629,9 @@ let sweepLayout: LayoutFn = function (node, pos, dims, showHeader, allowCollapse let newPos = [0, headerSz]; let newDims: [number,number] = [dims[0], dims[1] - headerSz]; leavesLyt = new LayoutNode('SWEEP_' + node.name, leaves); - let minSz = opts.minTileSz + opts.tileSpacing*2; - let sweptW = Math.max(minSz, newDims[0] * ratio), sweptH = Math.max(minSz, newDims[1] * ratio); + let minSz = opts.minTileSz + opts.tileSpacing*4; + let sweptW = Math.min(Math.max(minSz, newDims[0] * ratio), newDims[0] - minSz); + let sweptH = Math.min(Math.max(minSz, newDims[1] * ratio), newDims[0] - minSz); let leavesSuccess: boolean; switch (opts.sweepMode){ case 'left': -- cgit v1.2.3