| 983 | } |
| 984 | |
| 985 | function waitForFullscreenEnter(window: WaveBrowserWindow): Promise<void> { |
| 986 | if (window.isFullScreen()) { |
| 987 | return Promise.resolve(); |
| 988 | } |
| 989 | return new Promise((resolve, reject) => { |
| 990 | // eslint-disable-next-line prefer-const |
| 991 | let timeout: ReturnType<typeof setTimeout>; |
| 992 | const onEnter = () => { |
| 993 | clearTimeout(timeout); |
| 994 | resolve(); |
| 995 | }; |
| 996 | timeout = setTimeout(() => { |
| 997 | window.removeListener("enter-full-screen", onEnter); |
| 998 | reject(new Error("fullscreen transition timeout")); |
| 999 | }, FullscreenTransitionTimeoutMs); |
| 1000 | window.once("enter-full-screen", onEnter); |
| 1001 | }); |
| 1002 | } |
| 1003 | |
| 1004 | async function quakeToggle() { |
| 1005 | if (quakeToggleInProgress) { |