Skip to content

Commit

Permalink
fix: fix fullscreen detection false positive
Browse files Browse the repository at this point in the history
The window having the same size as the screen doesn't mean the page is fullscreen
  • Loading branch information
Loïc Mangeonjean committed Feb 27, 2024
1 parent 872e560 commit a5a656c
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions scripts/vscode.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5720,6 +5720,31 @@ index 4b9a9581b0d..6d87d41df51 100644
constructor(
public readonly toAdd: IExtension[],
public readonly toRemove: string[] | IExtension[]
diff --git a/src/vs/workbench/services/host/browser/browserHostService.ts b/src/vs/workbench/services/host/browser/browserHostService.ts
index 79c91e10dba..639fd0a61a0 100644
--- a/src/vs/workbench/services/host/browser/browserHostService.ts
+++ b/src/vs/workbench/services/host/browser/browserHostService.ts
@@ -213,13 +213,18 @@ export class BrowserHostService extends Disposable implements IHostService {
const windowId = getWindowId(window);
const viewport = isIOS && window.visualViewport ? window.visualViewport /** Visual viewport */ : window /** Layout viewport */;

+ const isFullScreen = () => {
+ const fullScreen = detectFullscreen(window);
+ return fullScreen !== null && !fullScreen.guess;
+ };
+
// Fullscreen (Browser)
for (const event of [EventType.FULLSCREEN_CHANGE, EventType.WK_FULLSCREEN_CHANGE]) {
- disposables.add(addDisposableListener(window.document, event, () => emitter.fire({ windowId, fullscreen: !!detectFullscreen(window) })));
+ disposables.add(addDisposableListener(window.document, event, () => emitter.fire({ windowId, fullscreen: isFullScreen() })));
}

// Fullscreen (Native)
- disposables.add(addDisposableThrottledListener(viewport, EventType.RESIZE, () => emitter.fire({ windowId, fullscreen: !!detectFullscreen(window) }), undefined, isMacintosh ? 2000 /* adjust for macOS animation */ : 800 /* can be throttled */));
+ disposables.add(addDisposableThrottledListener(viewport, EventType.RESIZE, () => emitter.fire({ windowId, fullscreen: isFullScreen() }), undefined, isMacintosh ? 2000 /* adjust for macOS animation */ : 800 /* can be throttled */));
}, { window: mainWindow, disposables: this._store }));

return emitter.event;
diff --git a/src/vs/workbench/services/keybinding/browser/keybindingService.ts b/src/vs/workbench/services/keybinding/browser/keybindingService.ts
index 708268ba3c3..956db0ac3bd 100644
--- a/src/vs/workbench/services/keybinding/browser/keybindingService.ts
Expand Down

0 comments on commit a5a656c

Please sign in to comment.