Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version Version: 1.68.0 (user setup) Commit: Date: 2022-06-08T11:44:16.822Z Electron: 17.4.7 Chromium: 98.0.4758.141 16.13.0 V8: 9.8.177.13-electron.0 OS: Windows_NT x64 10.0. Steps to Reproduce: is not in F11 fullscreen mode. the Settings GUI, set window.zoomLevel to a negative value (e.g. -3) add an extra 0 (e.g. -30) setting is automatically applied, which leads to a state where the entire UI disappears. Clicking anywhere in the window minimizes the window. F11 fullscreen mode appears to fix this situation and the UI becomes visible again(albeit very tiny at the -30 zoom level). My initial take is this could be fixed with a sane lower bounds on window.zoomLevel. However, it appears that part of the issue is also that as window.zoomLevel becomes more negative(zooms out), the Menu Bar becomes larger. At high magnitude negative values, the Menu Bar increases in size to the point where it takes up the entire window and prevents user input. Ex.) window.zoomLevel: -20 . ! Ex.) window.zoomLevel: -30. At this level, the Menu Bar minimize "-" icon takes up the whole window. At this level, the setting input box also de-focuses, preventing the user from pressing backspace to remove the extra 0. !
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!

Discussion:
ALL_WINDOWS } <ins> export const MAX_ZOOM_LEVEL = 8; export const MIN_ZOOM_LEVEL = -8; </ins> /** * Apply a zoom level to the window. Also sets it in our in-memory * browser helper so that it can be accessed in non-electron layers. */ export function applyZoom(zoomLevel: number, target: ApplyZoomTarget | Window): void { <ins> zoomLevel = Math.min(Math.max(zoomLevel, MIN_ZOOM_LEVEL), MAX_ZOOM_LEVEL); // cap zoom levels between -8 and 8 </ins> const targetWindows: Window[] = []; if (target === ApplyZoomTarget.ACTIVE_WINDOW) { targetWindows.push(getActiveWindow());

import 'vs/css!./media/actions'; import { URI } from 'vs/base/common/uri'; import { localize, localize2 } from 'vs/nls'; <del> import { ApplyZoomTarget, applyZoom } from 'vs/platform/window/electron-sandbox/window'; </del> <ins> import { ApplyZoomTarget, MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL, applyZoom } from 'vs/platform/window/electron-sandbox/window'; </ins> import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { getZoomLevel } from 'vs/base/browser/browser'; import { FileKind } from 'vs/platform/files/common/files';

private static readonly ZOOM_LEVEL_SETTING_KEY = 'window.zoomLevel'; private static readonly ZOOM_PER_WINDOW_SETTING_KEY = 'window.zoomPerWindow'; <del> private static readonly MAX_ZOOM_LEVEL = 8; private static readonly MIN_ZOOM_LEVEL = -8; </del> constructor(desc: Readonly<IAction2Options>) { super(desc); }

level = Math.round(level); // when reaching smallest zoom, prevent fractional zoom levels <del> if (level > BaseZoomAction.MAX_ZOOM_LEVEL || level < BaseZoomAction.MIN_ZOOM_LEVEL) { </del> <ins> if (level > MAX_ZOOM_LEVEL || level < MIN_ZOOM_LEVEL) { </ins> return; // https://github.com/microsoft/vscode/issues/48357 }

import { NativeWindow } from 'vs/workbench/electron-sandbox/window'; import { ModifierKeyEmitter } from 'vs/base/browser/dom'; import { applicationConfigurationNodeBase, securityConfigurationNodeBase } from 'vs/workbench/common/configuration'; <ins> import { MAX_ZOOM_LEVEL, MIN_ZOOM_LEVEL } from 'vs/platform/window/electron-sandbox/window'; </ins> // Actions (function registerActions(): void {

'window.zoomLevel': { 'type': 'number', 'default': 0, <del> 'minimum': -8, 'maximum': 8, </del> <ins> 'minimum': MIN_ZOOM_LEVEL, 'maximum': MAX_ZOOM_LEVEL, </ins> 'markdownDescription': localize({ comment: ['{0} will be a setting name rendered as a link'], key: 'zoomLevel' }, "Adjust the default zoom level for all windows. Each increment above `0` (e.g. `1`) or below (e.g. `-1`) represents zooming `20%` larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity. See {0} for configuring if the 'Zoom In' and 'Zoom Out' commands apply the zoom level to all windows or only the active window.", '`#window.zoomPerWindow#`'), ignoreSync: true, tags: ['accessibility']