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:
doouding
2025-01-03 06:09:10 +00:00
parent 0699205721
commit cb5d7eaabc
13 changed files with 155 additions and 36 deletions
@@ -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);