dockview-core 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-core
3
- * @version 4.13.0
3
+ * @version 4.13.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -8587,7 +8587,14 @@
8587
8587
  if (options.debug) {
8588
8588
  this.addDisposables(new StrictEventsSequencing(this));
8589
8589
  }
8590
- 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(() => {
8590
+ 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(() => {
8591
+ /**
8592
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
8593
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
8594
+ * Debounced to avoid multiple calls when moving groups with multiple panels.
8595
+ */
8596
+ this.debouncedUpdateAllPositions();
8597
+ }), this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8591
8598
  this.updateWatermark();
8592
8599
  }), this.onDidAdd((event) => {
8593
8600
  if (!this._moving) {
@@ -9453,9 +9460,7 @@
9453
9460
  }
9454
9461
  this.updateWatermark();
9455
9462
  // Force position updates for always visible panels after DOM layout is complete
9456
- requestAnimationFrame(() => {
9457
- this.overlayRenderContainer.updateAllPositions();
9458
- });
9463
+ this.debouncedUpdateAllPositions();
9459
9464
  this._onDidLayoutFromJSON.fire();
9460
9465
  }
9461
9466
  clear() {
@@ -9791,6 +9796,15 @@
9791
9796
  }
9792
9797
  return re;
9793
9798
  }
9799
+ debouncedUpdateAllPositions() {
9800
+ if (this._updatePositionsFrameId !== undefined) {
9801
+ cancelAnimationFrame(this._updatePositionsFrameId);
9802
+ }
9803
+ this._updatePositionsFrameId = requestAnimationFrame(() => {
9804
+ this._updatePositionsFrameId = undefined;
9805
+ this.overlayRenderContainer.updateAllPositions();
9806
+ });
9807
+ }
9794
9808
  movingLock(func) {
9795
9809
  const isMoving = this._moving;
9796
9810
  try {
@@ -9861,13 +9875,6 @@
9861
9875
  panel: removedPanel,
9862
9876
  from: sourceGroup,
9863
9877
  });
9864
- /**
9865
- * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9866
- * With defaultRenderer="always" this results in panel content not showing after move operations.
9867
- */
9868
- requestAnimationFrame(() => {
9869
- this.overlayRenderContainer.updateAllPositions();
9870
- });
9871
9878
  }
9872
9879
  else {
9873
9880
  /**
@@ -10108,6 +10115,7 @@
10108
10115
  from.panels.forEach((panel) => {
10109
10116
  this._onDidMovePanel.fire({ panel, from });
10110
10117
  });
10118
+ this.debouncedUpdateAllPositions();
10111
10119
  // Ensure group becomes active after move
10112
10120
  if (options.skipSetActive === false) {
10113
10121
  // Only activate when explicitly requested (skipSetActive: false)