splitView Tabremove fixes.

This commit is contained in:
brahim 2024-10-03 15:31:45 +02:00
parent ae18457baa
commit 5fb767ef72

View file

@ -160,12 +160,13 @@ var gZenViewSplitter = new class {
leftOverChild.parent = parent.parent; leftOverChild.parent = parent.parent;
parent.parent.children[parent.parent.children.indexOf(parent)] = leftOverChild; parent.parent.children[parent.parent.children.indexOf(parent)] = leftOverChild;
this._removeNodeSplitters(parent, false); this._removeNodeSplitters(parent, false);
this.applyGridLayout(parent.parent);
} else { } else {
const viewData = Object.entries(this._data).find(s => s.layoutTree === parent); const viewData = Object.values(this._data).find(s => s.layoutTree === parent);
viewData.layoutTree = parent; viewData.layoutTree = parent;
parent.positionToRoot = null; parent.positionToRoot = null;
this.applyGridLayout(parent);
} }
this.applyGridLayout(parent.parent, true);
} }
/** /**
@ -676,12 +677,6 @@ var gZenViewSplitter = new class {
splitter.setAttribute('gridIdx', idx); splitter.setAttribute('gridIdx', idx);
this.splitterBox.insertAdjacentElement("afterbegin", splitter); this.splitterBox.insertAdjacentElement("afterbegin", splitter);
splitter.parentSplitNode = parentNode;
if (!this._splitNodeToSplitters.has(parentNode)) {
this._splitNodeToSplitters.set(parentNode, []);
}
this._splitNodeToSplitters.get(parentNode).push(splitter);
splitter.addEventListener('mousedown', this.handleSplitterMouseDown); splitter.addEventListener('mousedown', this.handleSplitterMouseDown);
return splitter; return splitter;
} }
@ -699,14 +694,15 @@ var gZenViewSplitter = new class {
); );
} }
if (currentSplitters.length > splittersNeeded) { if (currentSplitters.length > splittersNeeded) {
currentSplitters.slice(currentSplitters - splittersNeeded).forEach(s => s.remove()); currentSplitters.slice(splittersNeeded - currentSplitters.length).forEach(s => s.remove());
currentSplitters = currentSplitters.slice(0, splittersNeeded); currentSplitters = currentSplitters.slice(0, splittersNeeded);
} }
this._splitNodeToSplitters.set(parentNode, currentSplitters);
return currentSplitters; return currentSplitters;
} }
removeSplitters() { removeSplitters() {
Array.from(this._splitNodeToSplitters.values()).forEach(s => s.remove()); Array.from(this._splitNodeToSplitters.values())[0].forEach(e => e.remove());
this._splitNodeToSplitters.clear(); this._splitNodeToSplitters.clear();
} }