L-Sun
2025-03-03 10:51:27 +00:00
parent 889625cdaa
commit 37fbfbcf3e
2 changed files with 67 additions and 2 deletions

View File

@@ -514,7 +514,8 @@ export class LayerManager {
const isLocalElem = element instanceof GfxLocalElementModel; const isLocalElem = element instanceof GfxLocalElementModel;
const indexChanged = !props || 'index' in props; const indexChanged = !props || 'index' in props;
const childIdsChanged = props && 'childIds' in props; const childIdsChanged =
props && ('childIds' in props || 'childElementIds' in props);
const shouldUpdateGroupChildren = const shouldUpdateGroupChildren =
isGfxGroupCompatibleModel(element) && (indexChanged || childIdsChanged); isGfxGroupCompatibleModel(element) && (indexChanged || childIdsChanged);
const updateArray = (array: GfxModel[], element: GfxModel) => { const updateArray = (array: GfxModel[], element: GfxModel) => {
@@ -798,7 +799,7 @@ export class LayerManager {
if ( if (
(payload.props.key === 'index' || (payload.props.key === 'index' ||
payload.props.key === 'childIds') && payload.props.key === 'childElementIds') &&
block instanceof GfxBlockElementModel && block instanceof GfxBlockElementModel &&
(block.parent instanceof SurfaceBlockModel || (block.parent instanceof SurfaceBlockModel ||
block.parent?.role === 'root') block.parent?.role === 'root')

View File

@@ -0,0 +1,64 @@
import { test } from '@affine-test/kit/playwright';
import {
clickEdgelessModeButton,
clickView,
createEdgelessNoteBlock,
dragView,
locateEditorContainer,
locateElementToolbar,
toViewCoord,
} from '@affine-test/kit/utils/editor';
import {
pressBackspace,
pressEscape,
selectAllByKeyboard,
} from '@affine-test/kit/utils/keyboard';
import { openHomePage } from '@affine-test/kit/utils/load-page';
import {
clickNewPageButton,
waitForEditorLoad,
} from '@affine-test/kit/utils/page-logic';
import { expect } from '@playwright/test';
test.beforeEach(async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await clickNewPageButton(page);
await clickEdgelessModeButton(page);
const container = locateEditorContainer(page);
await container.click();
await selectAllByKeyboard(page);
await pressBackspace(page);
});
test('should update zindex of element when moving it into frame', async ({
page,
}) => {
const toolbar = locateElementToolbar(page);
// create a top frame
await page.keyboard.press('f');
await dragView(page, [0, 0], [300, 300]);
await toolbar.getByLabel('Background').click();
await toolbar.getByLabel('LightRed').click();
await pressEscape(page);
// create a note
await createEdgelessNoteBlock(page, [400, 400]);
await clickView(page, [0, 0]);
await clickView(page, [400, 400]);
await toolbar.getByLabel('More').click();
await toolbar.getByLabel('Send to Back').click();
await pressEscape(page);
await dragView(page, [400, 400], [100, 100]);
const point = await toViewCoord(page, [100, 100]);
const isNoteAboveFrame = await page.evaluate(point => {
return !!document
.elementFromPoint(point[0], point[1])
?.closest('affine-edgeless-note');
}, point);
expect(isNoteAboveFrame).toBe(true);
});