diff --git a/packages/editor-preset-vision/src/panes.ts b/packages/editor-preset-vision/src/panes.ts index 5d4e063cd..592e1f7c2 100644 --- a/packages/editor-preset-vision/src/panes.ts +++ b/packages/editor-preset-vision/src/panes.ts @@ -68,7 +68,7 @@ function upgradeConfig(config: OldPaneConfig): IWidgetBaseConfig & { area: strin newConfig.type = 'PanelDock'; newConfig.area = 'left'; newConfig.props.description = description || title; - const { contents, hideTitleBar, tip, width, maxWidth, height, maxHeight, menu, isAction } = config; + const { contents, hideTitleBar, tip, width, maxWidth, height, maxHeight, menu, isAction, canSetFixed } = config; if (menu) { newConfig.props.title = menu; } @@ -83,6 +83,7 @@ function upgradeConfig(config: OldPaneConfig): IWidgetBaseConfig & { area: strin maxWidth, height, maxHeight, + canSetFixed, onInit: init, onDestroy: destroy, }; diff --git a/packages/editor-skeleton/src/layouts/left-float-pane.tsx b/packages/editor-skeleton/src/layouts/left-float-pane.tsx index 493490cd7..9b6ed7c31 100644 --- a/packages/editor-skeleton/src/layouts/left-float-pane.tsx +++ b/packages/editor-skeleton/src/layouts/left-float-pane.tsx @@ -91,6 +91,7 @@ export default class LeftFloatPane extends Component<{ area: Area }> if (!current) { return; } + area.skeleton.leftFloatArea.remove(current); area.skeleton.leftFixedArea.add(current); area.skeleton.leftFixedArea.container.active(current); @@ -99,6 +100,12 @@ export default class LeftFloatPane extends Component<{ area: Area }> render() { const { area } = this.props; const width = area.current?.config.props?.width; + // can be set fixed by default + let canSetFixed = true; + if (area.current?.config.props?.canSetFixed === false) { + canSetFixed = false; + } + const hideTitleBar = area.current?.config.props?.hideTitleBar; const style = width ? { width @@ -114,13 +121,17 @@ export default class LeftFloatPane extends Component<{ area: Area }> { !hideTitleBar && ( - + { + canSetFixed && ( + + ) + }