mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-06 03:49:56 +08:00
feat: add scroll wheel zoom setting (#9476)
### Changed Add `scroll wheel to zoom` setting option, when the option enables, user can zoom in and out with scroll wheel without pressing the cmd/ctrl key.
This commit is contained in:
@@ -120,6 +120,50 @@ test('zoom by mouse', async ({ page }) => {
|
||||
await assertEdgelessSelectedModelRect(page, zoomed);
|
||||
});
|
||||
|
||||
test('zoom by mouse without ctrl pressed when edgelessScrollZoom is enabled', async ({
|
||||
page,
|
||||
}) => {
|
||||
await enterPlaygroundRoom(page);
|
||||
await initEmptyEdgelessState(page);
|
||||
|
||||
await switchEditorMode(page);
|
||||
await zoomResetByKeyboard(page);
|
||||
await assertZoomLevel(page, 100);
|
||||
|
||||
await assertNoteXYWH(page, [0, 0, DEFAULT_NOTE_WIDTH, DEFAULT_NOTE_HEIGHT]);
|
||||
|
||||
await page.mouse.click(CENTER_X, CENTER_Y);
|
||||
const original = [0, 0, DEFAULT_NOTE_WIDTH, DEFAULT_NOTE_HEIGHT];
|
||||
await assertEdgelessSelectedModelRect(page, original);
|
||||
|
||||
// enable edgelessScrollZoom
|
||||
await page.evaluate(() => {
|
||||
window.editorSetting$.value = {
|
||||
...window.editorSetting$.value,
|
||||
edgelessScrollZoom: true,
|
||||
};
|
||||
});
|
||||
|
||||
// can zoom without ctrl pressed
|
||||
await zoomByMouseWheel(page, 0, 125, false);
|
||||
await assertZoomLevel(page, 90);
|
||||
|
||||
const zoomed = [0, 0, original[2] * 0.9, original[3] * 0.9];
|
||||
await assertEdgelessSelectedModelRect(page, zoomed);
|
||||
|
||||
// disable edgelessScrollZoom
|
||||
await page.evaluate(() => {
|
||||
window.editorSetting$.value = {
|
||||
...window.editorSetting$.value,
|
||||
edgelessScrollZoom: false,
|
||||
};
|
||||
});
|
||||
|
||||
// can't zoom without ctrl pressed
|
||||
await zoomByMouseWheel(page, 0, 125, false);
|
||||
await assertZoomLevel(page, 90);
|
||||
});
|
||||
|
||||
test('zoom by pinch', async ({ page }) => {
|
||||
await enterPlaygroundRoom(page);
|
||||
await initEmptyEdgelessState(page);
|
||||
|
||||
@@ -825,11 +825,14 @@ export async function clickComponentToolbarMoreMenuButton(
|
||||
export async function zoomByMouseWheel(
|
||||
page: Page,
|
||||
stepX: number,
|
||||
stepY: number
|
||||
stepY: number,
|
||||
pressedKey = true
|
||||
) {
|
||||
await page.keyboard.down(SHORT_KEY);
|
||||
if (pressedKey) await page.keyboard.down(SHORT_KEY);
|
||||
|
||||
await page.mouse.wheel(stepX, stepY);
|
||||
await page.keyboard.up(SHORT_KEY);
|
||||
|
||||
if (pressedKey) await page.keyboard.up(SHORT_KEY);
|
||||
}
|
||||
|
||||
// touch screen is not supported by Playwright now
|
||||
|
||||
Reference in New Issue
Block a user