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