Skip to content

Commit

Permalink
fix: Canvas resize on Linux (#4310)
Browse files Browse the repository at this point in the history
## Description


https://discord.com/channels/955905230107738152/1297002444647170129/1297002444647170129

## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
5de6)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
  • Loading branch information
istarkov authored Oct 19, 2024
1 parent 513d786 commit 32615ba
Showing 1 changed file with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,9 +169,9 @@ export const numericScrubControl = (

onStart?.();
state.value = getInitialValue();
state.timerId = setTimeout(() => {
state.timerId = setTimeout(async () => {
exitPointerLock?.();
exitPointerLock = requestPointerLock(state, event, targetNode);
exitPointerLock = await requestPointerLock(state, event, targetNode);
}, 150);

targetNode.addEventListener("pointermove", handleEvent);
Expand Down Expand Up @@ -272,7 +272,7 @@ const setRootStyle = (
};
};

const requestPointerLock = (
const requestPointerLock = async (
state: NumericScrubState,
event: PointerEvent,
targetNode: HTMLElement | SVGElement
Expand All @@ -287,8 +287,15 @@ const requestPointerLock = (
// other browsers show a warning banner, making the use of it in this scenario subpar: in which case we fallback to using non-pointerLock means:
// albeit without an infinite cursor ux.
if (shouldUsePointerLock) {
// @ts-expect-error - unadjustedMovement is a chromium only feature, fixes random movementX|Y jumps on windows
targetNode.requestPointerLock({ unadjustedMovement: true });
// based on https://developer.mozilla.org/en-US/docs/Web/API/Element/requestPointerLock is async
try {
// @ts-expect-error - unadjustedMovement is a chromium only feature, fixes random movementX|Y jumps on windows
await targetNode.requestPointerLock({ unadjustedMovement: true });
} catch {
// Some platforms may not support unadjusted movement.
await targetNode.requestPointerLock();
}

const cursorNode = (targetNode.ownerDocument.querySelector(
"#numeric-guesture-control-cursor"
) ||
Expand Down

0 comments on commit 32615ba

Please sign in to comment.