Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">

<PropertyGroup>
<Version>9.1.18</Version>
<Version>9.1.19</Version>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,10 @@
flex-direction: column;
}

.bb-dockview .bb-dockview-aside:empty {
width: 0;
}

.bb-dockview .bb-dockview-aside-left {
left: 0;
border-right: 1px solid var(--bs-border-color);
Expand Down Expand Up @@ -290,3 +294,7 @@
.bb-dockview .bb-overflowHidden {
overflow: hidden;
}

.bb-dockview .dv-render-overlay-float {
z-index: -1 !important;
}
44 changes: 39 additions & 5 deletions src/components/BootstrapBlazor.DockView/wwwroot/css/dockview.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
height: 4px;
border-radius: 2px;
background-color: transparent;
/* GPU optimizations */
will-change: background-color, transform;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
Comment on lines +13 to +15
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (performance): Consider limiting will-change usage to avoid excessive GPU layers.

Limit will-change to elements where GPU acceleration provides a clear benefit to prevent unnecessary memory and performance overhead.

Suggested implementation:

  /* GPU optimizations */
  /* Removed will-change to avoid unnecessary GPU layers */
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;

  /* GPU optimizations */
  will-change: transform, opacity;
  transform: translate3d(0, 0, 0);

transition-property: background-color;
transition-timing-function: ease-in-out;
transition-duration: 1s;
Expand Down Expand Up @@ -629,13 +633,19 @@
.dv-drop-target-container .dv-drop-target-anchor {
position: relative;
border: var(--dv-drag-over-border);
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;
background-color: var(--dv-drag-over-background-color);
opacity: 1;
/* GPU optimizations */
will-change: transform, opacity;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
contain: layout paint;
transition: opacity var(--dv-transition-duration) ease-in, transform var(--dv-transition-duration) ease-out;
}
.dv-dockview {
position: relative;
background-color: var(--dv-group-view-background-color);
contain: layout;
}
.dv-dockview .dv-watermark-container {
position: absolute;
Expand Down Expand Up @@ -723,12 +733,18 @@
z-index: calc(var(--dv-overlay-z-index) - 2);
border: 1px solid var(--dv-tab-divider-color);
box-shadow: var(--dv-floating-box-shadow);
/* GPU optimizations for floating group movement */
will-change: transform, opacity;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
}
.dv-resize-container.dv-hidden {
display: none;
}
.dv-resize-container.dv-resize-container-dragging {
opacity: 0.5;
/* Enhanced GPU acceleration during drag */
will-change: transform, opacity;
}
.dv-resize-container .dv-resize-handle-top {
height: 4px;
Expand Down Expand Up @@ -806,7 +822,14 @@
--dv-overlay-z-index: var(--dv-overlay-z-index, 999);
position: absolute;
z-index: 1;
width: 100%;
height: 100%;
contain: layout paint;
isolation: isolate;
/* GPU optimizations */
will-change: transform;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
}
.dv-render-overlay.dv-render-overlay-float {
z-index: calc(var(--dv-overlay-z-index) - 1);
Expand All @@ -821,8 +844,11 @@
width: 100%;
}
.dv-pane-container.dv-animated .dv-view {
transition-duration: 0.15s;
transition-timing-function: ease-out;
/* GPU optimizations for smooth pane animations */
will-change: transform;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
transition: transform 0.15s ease-out;
}
.dv-pane-container .dv-view {
overflow: hidden;
Expand Down Expand Up @@ -931,8 +957,11 @@
}
.dv-split-view-container.dv-animation .dv-view,
.dv-split-view-container.dv-animation .dv-sash {
transition-duration: 0.15s;
transition-timing-function: ease-out;
/* GPU optimizations for smooth animations */
will-change: transform;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
transition: transform 0.15s ease-out;
}
.dv-split-view-container.dv-horizontal {
height: 100%;
Expand Down Expand Up @@ -1104,6 +1133,9 @@
height: 100%;
overflow: auto;
scrollbar-width: thin;
/* GPU optimizations for smooth scrolling */
will-change: scroll-position;
transform: translate3d(0, 0, 0);
/* Track */
/* Handle */
}
Expand Down Expand Up @@ -1184,6 +1216,8 @@
.dv-tabs-and-actions-container .dv-void-container {
display: flex;
flex-grow: 1;
}
.dv-tabs-and-actions-container .dv-void-container.dv-draggable {
cursor: grab;
}
.dv-tabs-and-actions-container .dv-right-actions-container {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,9 @@ const saveConfig = dockview => {
}
}
const saveParamsIsActive = dockview => {
dockview.panels.forEach(panel => panel.params.isActive = panel.api.isActive)
dockview.panels.forEach(panel => {
panel.params.isActive = panel.api.isActive || panel.group.activePanel === panel
})
}

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