diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/collections/CollectionDockingView.tsx | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index abba0a6ae..9c396e412 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -43,8 +43,7 @@ export class CollectionDockingView extends CollectionViewBase { private _containerRef = React.createRef<HTMLDivElement>(); private _makeFullScreen: boolean = false; private _maximizedStack: any = null; - private _pointerIsDown = false; // used to defer updating the document's layout state Data - private _deferredLayoutChange = ""; // the last deferred state change made that needs to be flushed on pointer up + private _forceRecreate: boolean = false; constructor(props: CollectionViewProps) { super(props); @@ -99,6 +98,7 @@ export class CollectionDockingView extends CollectionViewBase { if (this._goldenLayout.root.contentItems[0].isRow) { this._goldenLayout.root.contentItems[0].addChild(newContentItem); + collayout.callDownwards('setSize'); } else { var collayout = this._goldenLayout.root.contentItems[0]; @@ -112,6 +112,7 @@ export class CollectionDockingView extends CollectionViewBase { newContentItem.config["width"] = 50; collayout.parent.callDownwards('setSize'); } + this._forceRecreate = true; } setupGoldenLayout() { @@ -120,9 +121,12 @@ export class CollectionDockingView extends CollectionViewBase { if (!this._goldenLayout) this._goldenLayout = new GoldenLayout(JSON.parse(config)); else { + if (!this._forceRecreate && JSON.stringify(this._goldenLayout.toConfig()) == JSON.stringify(JSON.parse(config))) + return; this._goldenLayout.destroy(); this._goldenLayout = new GoldenLayout(JSON.parse(config)); } + this._forceRecreate = false; this._goldenLayout.on('tabCreated', this.tabCreated); this._goldenLayout.on('stackCreated', this.stackCreated); this._goldenLayout.registerComponent('DocumentFrameRenderer', DockedFrameRenderer); @@ -152,14 +156,7 @@ export class CollectionDockingView extends CollectionViewBase { } @action - onPointerUp = (e: PointerEvent): void => { - window.removeEventListener("pointerup", this.onPointerUp) - this._pointerIsDown = false; - } - @action onPointerDown = (e: React.PointerEvent): void => { - window.addEventListener("pointerup", this.onPointerUp) - this._pointerIsDown = true; if (e.button === 2 && this.active) { e.stopPropagation(); e.preventDefault(); @@ -171,10 +168,10 @@ export class CollectionDockingView extends CollectionViewBase { } stateChanged = () => { - if (!this._pointerIsDown) { - var json = JSON.stringify(this._goldenLayout.toConfig()); - this.props.Document.SetText(KeyStore.Data, json) - } + // if (!this._pointerIsDown) { + var json = JSON.stringify(this._goldenLayout.toConfig()); + this.props.Document.SetText(KeyStore.Data, json) + //} } tabCreated = (tab: any) => { |