dockview-angular 4.13.0 → 4.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-angular
3
- * @version 4.13.0
3
+ * @version 4.13.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -8534,7 +8534,14 @@
8534
8534
  if (options.debug) {
8535
8535
  this.addDisposables(new StrictEventsSequencing(this));
8536
8536
  }
8537
- this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8537
+ this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidMovePanel.event(() => {
8538
+ /**
8539
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
8540
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
8541
+ * Debounced to avoid multiple calls when moving groups with multiple panels.
8542
+ */
8543
+ this.debouncedUpdateAllPositions();
8544
+ }), this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8538
8545
  this.updateWatermark();
8539
8546
  }), this.onDidAdd((event) => {
8540
8547
  if (!this._moving) {
@@ -9400,9 +9407,7 @@
9400
9407
  }
9401
9408
  this.updateWatermark();
9402
9409
  // Force position updates for always visible panels after DOM layout is complete
9403
- requestAnimationFrame(() => {
9404
- this.overlayRenderContainer.updateAllPositions();
9405
- });
9410
+ this.debouncedUpdateAllPositions();
9406
9411
  this._onDidLayoutFromJSON.fire();
9407
9412
  }
9408
9413
  clear() {
@@ -9738,6 +9743,15 @@
9738
9743
  }
9739
9744
  return re;
9740
9745
  }
9746
+ debouncedUpdateAllPositions() {
9747
+ if (this._updatePositionsFrameId !== undefined) {
9748
+ cancelAnimationFrame(this._updatePositionsFrameId);
9749
+ }
9750
+ this._updatePositionsFrameId = requestAnimationFrame(() => {
9751
+ this._updatePositionsFrameId = undefined;
9752
+ this.overlayRenderContainer.updateAllPositions();
9753
+ });
9754
+ }
9741
9755
  movingLock(func) {
9742
9756
  const isMoving = this._moving;
9743
9757
  try {
@@ -9808,13 +9822,6 @@
9808
9822
  panel: removedPanel,
9809
9823
  from: sourceGroup,
9810
9824
  });
9811
- /**
9812
- * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9813
- * With defaultRenderer="always" this results in panel content not showing after move operations.
9814
- */
9815
- requestAnimationFrame(() => {
9816
- this.overlayRenderContainer.updateAllPositions();
9817
- });
9818
9825
  }
9819
9826
  else {
9820
9827
  /**
@@ -10055,6 +10062,7 @@
10055
10062
  from.panels.forEach((panel) => {
10056
10063
  this._onDidMovePanel.fire({ panel, from });
10057
10064
  });
10065
+ this.debouncedUpdateAllPositions();
10058
10066
  // Ensure group becomes active after move
10059
10067
  if (options.skipSetActive === false) {
10060
10068
  // Only activate when explicitly requested (skipSetActive: false)