Skip to content

Commit 8a05579

Browse files
feat: added keybinding 'f' to toggle full screen mode
This allows the user to quickly toggle between full screen for when presenting.
1 parent 2a4a7cb commit 8a05579

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

lib/core/browser/page-logic.browser.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,24 @@ export const handleMousePresses = function handleMousePresses(event: MouseEvent)
138138
if (event.button === rightClick) goToPreviousSlide();
139139
};
140140

141+
/** Toggles between full screen and normal web page mode. */
142+
export const toggleFullScreen = function toggleFullScreen(): void {
143+
if (document.fullscreenElement) {
144+
document.exitFullscreen().catch((error: unknown) => {
145+
Logger.error(error);
146+
});
147+
} else {
148+
document.documentElement
149+
.requestFullscreen()
150+
.then(() => {
151+
Logger.info('Received full screen permissions, press ESC to exit.');
152+
})
153+
.catch((error: unknown) => {
154+
Logger.error(error);
155+
});
156+
}
157+
};
158+
141159
/** Handles key presses on the document, and moves slides accordingly. */
142160
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
143161
export const handleKeyPresses = function handleKeyPresses(event: KeyboardEvent): void {
@@ -156,6 +174,10 @@ export const handleKeyPresses = function handleKeyPresses(event: KeyboardEvent):
156174
case 'ArrowLeft':
157175
goToPreviousSlide();
158176
break;
177+
case 'f':
178+
case 'F11':
179+
toggleFullScreen();
180+
break;
159181
default:
160182
}
161183
};
@@ -245,6 +267,7 @@ export const setupScriptCode = /*JavaScript*/ `
245267
${setupUrlHashCallBack.toString()}
246268
${handleUrlHashChange.toString()}
247269
${handleMousePresses.toString()}
270+
${toggleFullScreen.toString()}
248271
${handleKeyPresses.toString()}
249272
${handleScrollEvents.toString()}
250273
${handleTouchEvents.toString()}

0 commit comments

Comments
 (0)