Skip to content

Commit 17aa5a7

Browse files
committed
fix:完善修复浮动窗口无法缩放
1 parent 5f3a4fb commit 17aa5a7

3 files changed

Lines changed: 25 additions & 16 deletions

File tree

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 };

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { getIcons, getIcon } from "./dockview-icon.js"
2-
import { deletePanel, findContentFromPanels } from "./dockview-panel.js"
2+
import { deletePanel, findContentFromPanels, moveAlwaysRenderPanel } from "./dockview-panel.js"
33
import { saveConfig } from "./dockview-config.js"
44
import { observeGroup } from "./dockview-utils.js"
55
import EventHandler from '../../BootstrapBlazor/modules/event-handler.js'
@@ -557,6 +557,9 @@ const createFloatingGroup = (group, rect, groupType) => {
557557
observeOverlayChange(overlay, floatingGroup)
558558
observeGroup(floatingGroup)
559559
createGroupActions(floatingGroup, groupType)
560+
if(floatingGroup.panels.length == 1) {
561+
moveAlwaysRenderPanel(floatingGroup.activePanel)
562+
}
560563
return floatingGroup
561564
}
562565
const observeOverlayChange = (overlay, group) => {
@@ -613,7 +616,7 @@ const dock = (group, floatType) => {
613616
originGroup.element.parentElement.classList.remove('bb-maximize')
614617
const { drawer, rect = {} } = group.getParams()
615618
const inset = group.element.parentElement.style.inset.split(' ').map(item => isNaN(parseFloat(item)) ? item : parseFloat(item))
616-
if(rect.isMaximized === false) {
619+
if(!rect.isMaximized) {
617620
rect.width = group.width + 2;
618621
rect.height = group.height + 2;
619622
rect.position = {};

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

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,26 @@ const observePanelActiveChange = panel => {
2020
setDrawerTitle(panel.group)
2121
}
2222
setTimeout(function () {
23-
if (panel.group.model.location.type === 'floating' && panel.renderer == 'always') {
24-
if (isActive) {
25-
const contentContainerEle = panel.group.element.querySelector('.dv-content-container');
26-
const contentEle = panel.view.content.element;
27-
contentEle.parentEle = contentEle.parentElement
28-
contentContainerEle.appendChild(contentEle);
29-
}
30-
else if (isActive === false && panel !== panel.group.activePanel) {
31-
panel.view.content.element.parentEle?.appendChild(panel.view.content.element);
32-
panel.view.content.element.parentEle && delete panel.view.content.element.parentEle;
33-
}
34-
}
23+
moveAlwaysRenderPanel(panel)
3524
}, 0)
3625
})
3726
}
3827

28+
const moveAlwaysRenderPanel = panel => {
29+
if (panel.group.model.location.type === 'floating' && panel.renderer == 'always') {
30+
if (panel === panel.group.activePanel) {
31+
const contentContainerEle = panel.group.element.querySelector('.dv-content-container');
32+
const contentEle = panel.view.content.element;
33+
contentEle.parentEle = contentEle.parentElement
34+
contentContainerEle.appendChild(contentEle);
35+
}
36+
else {
37+
panel.view.content.element.parentEle?.appendChild(panel.view.content.element);
38+
panel.view.content.element.parentEle && delete panel.view.content.element.parentEle;
39+
}
40+
}
41+
}
42+
3943
const onRemovePanel = event => {
4044
const dockview = event.accessor
4145
let panel = {
@@ -172,4 +176,4 @@ const deletePanel = (dockview, panel) => {
172176
}
173177
}
174178

175-
export { onAddPanel, observePanelActiveChange, onRemovePanel, getPanelsFromOptions, findContentFromPanels, deletePanel };
179+
export { onAddPanel, observePanelActiveChange, moveAlwaysRenderPanel, onRemovePanel, getPanelsFromOptions, findContentFromPanels, deletePanel };

0 commit comments

Comments
 (0)