Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion desktop/renderer-app/src/stores/whiteboard-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ export class WhiteboardStore {

// Disable scale, fix height.
fastboardAPP.manager.mainView.setCameraBound({
damping: 0,
damping: 1,
centerX: 0,
centerY: 0,
minContentMode: () => 1,
Expand Down
14 changes: 11 additions & 3 deletions desktop/renderer-app/src/utils/mousewheel-to-scroll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,23 @@ import type { AnimationMode, WindowManager } from "@netless/window-manager";

// Let mouse wheel act as scrolling the whiteboard
export function mousewheelToScroll(root: HTMLElement, manager: WindowManager): () => void {
const $whiteboard = root.querySelector(".netless-window-manager-main-view") as HTMLDivElement;
if (!$whiteboard) {
throw new Error("Not found .netless-window-manager-main-view");
}
const listener = (ev: Event): void => {
ev.preventDefault();
ev.stopPropagation();
const dy = (ev as WheelEvent).deltaY || 0;
manager.moveCamera({
centerY: manager.camera.centerY + dy * manager.camera.scale,
centerY: clamp(manager.camera.centerY + dy * manager.camera.scale, -950, 950),
animationMode: "immediately" as AnimationMode.Immediately,
});
};
root.addEventListener("wheel", listener, true);
return () => root.removeEventListener("wheel", listener, true);
$whiteboard.addEventListener("wheel", listener, true);
return () => $whiteboard.removeEventListener("wheel", listener, true);
}

function clamp(x: number, min: number, max: number): number {
return x < min ? min : x > max ? max : x;
}
2 changes: 1 addition & 1 deletion web/flat-web/src/stores/whiteboard-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ export class WhiteboardStore {

// Disable scale, fix height.
fastboardAPP.manager.mainView.setCameraBound({
damping: 0,
damping: 1,
centerX: 0,
centerY: 0,
minContentMode: () => 1,
Expand Down
14 changes: 11 additions & 3 deletions web/flat-web/src/utils/mousewheel-to-scroll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,23 @@ import type { AnimationMode, WindowManager } from "@netless/window-manager";

// Let mouse wheel act as scrolling the whiteboard
export function mousewheelToScroll(root: HTMLElement, manager: WindowManager): () => void {
const $whiteboard = root.querySelector(".netless-window-manager-main-view") as HTMLDivElement;
if (!$whiteboard) {
throw new Error("Not found .netless-window-manager-main-view");
}
const listener = (ev: Event): void => {
ev.preventDefault();
ev.stopPropagation();
const dy = (ev as WheelEvent).deltaY || 0;
manager.moveCamera({
centerY: manager.camera.centerY + dy * manager.camera.scale,
centerY: clamp(manager.camera.centerY + dy * manager.camera.scale, -950, 950),
animationMode: "immediately" as AnimationMode.Immediately,
});
};
root.addEventListener("wheel", listener, true);
return () => root.removeEventListener("wheel", listener, true);
$whiteboard.addEventListener("wheel", listener, true);
return () => $whiteboard.removeEventListener("wheel", listener, true);
}

function clamp(x: number, min: number, max: number): number {
return x < min ? min : x > max ? max : x;
}