Skip to content

Commit a167235

Browse files
feat(DockView): update dockview 4.7.1 (#565)
* chore: update dockview to v4.7.0 * fix: 修复浮动窗口无法缩放及浮动窗口恢复后不显示激活的panel * chore: update dockview to v4.7.1 * fix: 修复浮动窗口最大化后取消浮动,窗口大小记录错误 * fix:完善修复浮动窗口无法缩放 * refactor: 样式格式化 * chore: bump version 9.1.19 --------- Co-authored-by: Argo Zhang <argo@live.ca>
1 parent d7b4231 commit a167235

7 files changed

Lines changed: 365 additions & 132 deletions

File tree

src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.1.18</Version>
4+
<Version>9.1.19</Version>
55
</PropertyGroup>
66

77
<PropertyGroup>

src/components/BootstrapBlazor.DockView/wwwroot/css/dockview-bb.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@
223223
flex-direction: column;
224224
}
225225

226+
.bb-dockview .bb-dockview-aside:empty {
227+
width: 0;
228+
}
229+
226230
.bb-dockview .bb-dockview-aside-left {
227231
left: 0;
228232
border-right: 1px solid var(--bs-border-color);
@@ -290,3 +294,7 @@
290294
.bb-dockview .bb-overflowHidden {
291295
overflow: hidden;
292296
}
297+
298+
.bb-dockview .dv-render-overlay-float {
299+
z-index: -1 !important;
300+
}

src/components/BootstrapBlazor.DockView/wwwroot/css/dockview.css

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
height: 4px;
1010
border-radius: 2px;
1111
background-color: transparent;
12+
/* GPU optimizations */
13+
will-change: background-color, transform;
14+
transform: translate3d(0, 0, 0);
15+
backface-visibility: hidden;
1216
transition-property: background-color;
1317
transition-timing-function: ease-in-out;
1418
transition-duration: 1s;
@@ -629,13 +633,19 @@
629633
.dv-drop-target-container .dv-drop-target-anchor {
630634
position: relative;
631635
border: var(--dv-drag-over-border);
632-
transition: opacity var(--dv-transition-duration) ease-in, top var(--dv-transition-duration) ease-out, left var(--dv-transition-duration) ease-out, width var(--dv-transition-duration) ease-out, height var(--dv-transition-duration) ease-out;
633636
background-color: var(--dv-drag-over-background-color);
634637
opacity: 1;
638+
/* GPU optimizations */
639+
will-change: transform, opacity;
640+
transform: translate3d(0, 0, 0);
641+
backface-visibility: hidden;
642+
contain: layout paint;
643+
transition: opacity var(--dv-transition-duration) ease-in, transform var(--dv-transition-duration) ease-out;
635644
}
636645
.dv-dockview {
637646
position: relative;
638647
background-color: var(--dv-group-view-background-color);
648+
contain: layout;
639649
}
640650
.dv-dockview .dv-watermark-container {
641651
position: absolute;
@@ -723,12 +733,18 @@
723733
z-index: calc(var(--dv-overlay-z-index) - 2);
724734
border: 1px solid var(--dv-tab-divider-color);
725735
box-shadow: var(--dv-floating-box-shadow);
736+
/* GPU optimizations for floating group movement */
737+
will-change: transform, opacity;
738+
transform: translate3d(0, 0, 0);
739+
backface-visibility: hidden;
726740
}
727741
.dv-resize-container.dv-hidden {
728742
display: none;
729743
}
730744
.dv-resize-container.dv-resize-container-dragging {
731745
opacity: 0.5;
746+
/* Enhanced GPU acceleration during drag */
747+
will-change: transform, opacity;
732748
}
733749
.dv-resize-container .dv-resize-handle-top {
734750
height: 4px;
@@ -806,7 +822,14 @@
806822
--dv-overlay-z-index: var(--dv-overlay-z-index, 999);
807823
position: absolute;
808824
z-index: 1;
825+
width: 100%;
809826
height: 100%;
827+
contain: layout paint;
828+
isolation: isolate;
829+
/* GPU optimizations */
830+
will-change: transform;
831+
transform: translate3d(0, 0, 0);
832+
backface-visibility: hidden;
810833
}
811834
.dv-render-overlay.dv-render-overlay-float {
812835
z-index: calc(var(--dv-overlay-z-index) - 1);
@@ -821,8 +844,11 @@
821844
width: 100%;
822845
}
823846
.dv-pane-container.dv-animated .dv-view {
824-
transition-duration: 0.15s;
825-
transition-timing-function: ease-out;
847+
/* GPU optimizations for smooth pane animations */
848+
will-change: transform;
849+
transform: translate3d(0, 0, 0);
850+
backface-visibility: hidden;
851+
transition: transform 0.15s ease-out;
826852
}
827853
.dv-pane-container .dv-view {
828854
overflow: hidden;
@@ -931,8 +957,11 @@
931957
}
932958
.dv-split-view-container.dv-animation .dv-view,
933959
.dv-split-view-container.dv-animation .dv-sash {
934-
transition-duration: 0.15s;
935-
transition-timing-function: ease-out;
960+
/* GPU optimizations for smooth animations */
961+
will-change: transform;
962+
transform: translate3d(0, 0, 0);
963+
backface-visibility: hidden;
964+
transition: transform 0.15s ease-out;
936965
}
937966
.dv-split-view-container.dv-horizontal {
938967
height: 100%;
@@ -1104,6 +1133,9 @@
11041133
height: 100%;
11051134
overflow: auto;
11061135
scrollbar-width: thin;
1136+
/* GPU optimizations for smooth scrolling */
1137+
will-change: scroll-position;
1138+
transform: translate3d(0, 0, 0);
11071139
/* Track */
11081140
/* Handle */
11091141
}
@@ -1184,6 +1216,8 @@
11841216
.dv-tabs-and-actions-container .dv-void-container {
11851217
display: flex;
11861218
flex-grow: 1;
1219+
}
1220+
.dv-tabs-and-actions-container .dv-void-container.dv-draggable {
11871221
cursor: grab;
11881222
}
11891223
.dv-tabs-and-actions-container .dv-right-actions-container {

src/components/BootstrapBlazor.DockView/wwwroot/js/dockview-config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,9 @@ const saveConfig = dockview => {
342342
}
343343
}
344344
const saveParamsIsActive = dockview => {
345-
dockview.panels.forEach(panel => panel.params.isActive = panel.api.isActive)
345+
dockview.panels.forEach(panel => {
346+
panel.params.isActive = panel.api.isActive || panel.group.activePanel === panel
347+
})
346348
}
347349

348350
export { getConfigFromStorage, getConfig, reloadFromConfig, saveConfig, loadPanelsFromLocalstorage };

0 commit comments

Comments
 (0)