diff --git a/blocksuite/affine/blocks/root/src/keyboard/keyboard-manager.ts b/blocksuite/affine/blocks/root/src/keyboard/keyboard-manager.ts index 74ce190eb6..e19db53687 100644 --- a/blocksuite/affine/blocks/root/src/keyboard/keyboard-manager.ts +++ b/blocksuite/affine/blocks/root/src/keyboard/keyboard-manager.ts @@ -11,7 +11,7 @@ import { getSelectedModelsCommand, } from '@blocksuite/affine-shared/commands'; import { matchModels } from '@blocksuite/affine-shared/utils'; -import { IS_MAC, IS_WINDOWS } from '@blocksuite/global/env'; +import { IS_LINUX, IS_MAC, IS_WINDOWS } from '@blocksuite/global/env'; import { type BlockComponent, BlockSelection, @@ -98,7 +98,7 @@ export class PageKeyboardManager { } }, 'Control-y': ctx => { - if (!IS_WINDOWS) return; + if (!IS_WINDOWS && !IS_LINUX) return; ctx.get('defaultState').event.preventDefault(); if (this._doc.canRedo) { diff --git a/tests/blocksuite/e2e/cross-platform/basic.spec.ts b/tests/blocksuite/e2e/cross-platform/basic.spec.ts index 56eab3d726..d31f519249 100644 --- a/tests/blocksuite/e2e/cross-platform/basic.spec.ts +++ b/tests/blocksuite/e2e/cross-platform/basic.spec.ts @@ -226,15 +226,20 @@ test(scoped`basic paired undo/redo`, async ({ page }) => { }); test(scoped`undo/redo with keyboard`, async ({ page }) => { + await page.addInitScript(() => { + Object.defineProperty(navigator, 'platform', { + get: () => 'Linux x86_64', + }); + }); await enterPlaygroundRoom(page); await initEmptyParagraphState(page); await focusRichText(page); await type(page, 'hello'); await assertText(page, 'hello'); - await undoByKeyboard(page); + await page.keyboard.press('Control+z'); await assertEmpty(page); - await redoByClick(page); + await page.keyboard.press('Control+y'); await assertText(page, 'hello'); });