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
  */
@@ -8564,7 +8564,14 @@ class DockviewComponent extends BaseGrid {
8564
8564
  if (options.debug) {
8565
8565
  this.addDisposables(new StrictEventsSequencing(this));
8566
8566
  }
8567
- 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(() => {
8567
+ 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(() => {
8568
+ /**
8569
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
8570
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
8571
+ * Debounced to avoid multiple calls when moving groups with multiple panels.
8572
+ */
8573
+ this.debouncedUpdateAllPositions();
8574
+ }), this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8568
8575
  this.updateWatermark();
8569
8576
  }), this.onDidAdd((event) => {
8570
8577
  if (!this._moving) {
@@ -9430,9 +9437,7 @@ class DockviewComponent extends BaseGrid {
9430
9437
  }
9431
9438
  this.updateWatermark();
9432
9439
  // Force position updates for always visible panels after DOM layout is complete
9433
- requestAnimationFrame(() => {
9434
- this.overlayRenderContainer.updateAllPositions();
9435
- });
9440
+ this.debouncedUpdateAllPositions();
9436
9441
  this._onDidLayoutFromJSON.fire();
9437
9442
  }
9438
9443
  clear() {
@@ -9768,6 +9773,15 @@ class DockviewComponent extends BaseGrid {
9768
9773
  }
9769
9774
  return re;
9770
9775
  }
9776
+ debouncedUpdateAllPositions() {
9777
+ if (this._updatePositionsFrameId !== undefined) {
9778
+ cancelAnimationFrame(this._updatePositionsFrameId);
9779
+ }
9780
+ this._updatePositionsFrameId = requestAnimationFrame(() => {
9781
+ this._updatePositionsFrameId = undefined;
9782
+ this.overlayRenderContainer.updateAllPositions();
9783
+ });
9784
+ }
9771
9785
  movingLock(func) {
9772
9786
  const isMoving = this._moving;
9773
9787
  try {
@@ -9838,13 +9852,6 @@ class DockviewComponent extends BaseGrid {
9838
9852
  panel: removedPanel,
9839
9853
  from: sourceGroup,
9840
9854
  });
9841
- /**
9842
- * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9843
- * With defaultRenderer="always" this results in panel content not showing after move operations.
9844
- */
9845
- requestAnimationFrame(() => {
9846
- this.overlayRenderContainer.updateAllPositions();
9847
- });
9848
9855
  }
9849
9856
  else {
9850
9857
  /**
@@ -10085,6 +10092,7 @@ class DockviewComponent extends BaseGrid {
10085
10092
  from.panels.forEach((panel) => {
10086
10093
  this._onDidMovePanel.fire({ panel, from });
10087
10094
  });
10095
+ this.debouncedUpdateAllPositions();
10088
10096
  // Ensure group becomes active after move
10089
10097
  if (options.skipSetActive === false) {
10090
10098
  // Only activate when explicitly requested (skipSetActive: false)