Change:
if (!this._context.configuration.options.get(EditorOption.mouseWheelZoom)) { return; } const e = new StandardWheelEvent(browserEvent); <del> const doMouseWheelZoom = ( </del> <ins> classifier.acceptStandardWheelEvent(e); if (classifier.isPhysicalMouseWheel()) { if (hasMouseWheelZoomModifiers(browserEvent)) { const zoomLevel: number = EditorZoom.getZoomLevel(); const delta = e.deltaY > 0 ? 1 : -1; EditorZoom.setZoomLevel(zoomLevel + delta); e.preventDefault(); e.stopPropagation(); } } else { // we consider mousewheel events that occur within 50ms of each other to be part of the same gesture // we don't want to consider mouse wheel events where ctrl/cmd is pressed during the inertia phase // we also want to accumulate deltaY values from the same gesture and use that to set the zoom level if (Date.now() - prevMouseWheelTime > 50) { // reset if more than 50ms have passed gestureStartZoomLevel = EditorZoom.getZoomLevel(); gestureHasZoomModifiers = hasMouseWheelZoomModifiers(browserEvent); gestureAccumulatedDelta = 0; } prevMouseWheelTime = Date.now(); gestureAccumulatedDelta += e.deltaY; if (gestureHasZoomModifiers) { EditorZoom.setZoomLevel(gestureStartZoomLevel + gestureAccumulatedDelta / 5); e.preventDefault(); e.stopPropagation(); } } }; this._register(dom.addDisposableListener(this.viewHelper.viewDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { capture: true, passive: false })); function hasMouseWheelZoomModifiers(browserEvent: IMouseWheelEvent): boolean { return ( </ins> platform.isMacintosh // on macOS we support cmd + two fingers scroll (`metaKey` set) // and also the two fingers pinch gesture (`ctrKey` set) ? ((browserEvent.metaKey || browserEvent.ctrlKey) && !browserEvent.shiftKey && !browserEvent.altKey) : (browserEvent.ctrlKey && !browserEvent.metaKey && !browserEvent.shiftKey && !browserEvent.altKey) ); <del> if (doMouseWheelZoom) { const zoomLevel: number = EditorZoom.getZoomLevel(); const delta = e.deltaY > 0 ? 1 : -1; EditorZoom.setZoomLevel(zoomLevel + delta); e.preventDefault(); e.stopPropagation(); } }; this._register(dom.addDisposableListener(this.viewHelper.viewDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { capture: true, passive: false })); this._context.addEventHandler(this); </del> <ins> } </ins> } public override dispose(): void {

Discussion:
Issue Type: <bBug</bOn macOS. I have the option that you can change fontsize on the fly with the command key, a nice feature of Visual Studio Code. Open a file with many lines so you can see the problem. About ~1000 lines. Use trackpad to "push" scroll to any direction (up or down). The file will start scrolling and you can feel the "inertia" effect: the scrolling will last even if your hand is not touching the trackpad. Nice effect for me. Repeat the operation, but when the file is in middle of the inertia-scrolling press the command key. The fontsize will change because it thinks you are changing it via the command key. Is somebit tedious because in macOs you must use command-tab to change between applications, and is common that you want to scroll the file, then rapid-change between applications for something. In all that moments you are "scrolling" and press the command key the fontsize will change and you must to re-adjust it. best regards VS Code version: Code 1.46.1 (, 2020-06-17T21:17:14.222Z) OS version: Darwin x64 19.5.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
What setting are you using to change font size with scroll?
This one.
This is exactly the reason why this setting is not on by default. We basically cannot distinguish in the incoming events if the scrolling happened via a physical mouse wheel or via the touchpad. So, on laptops, people hit this accidentally super often. So that is why the setting is off by default.
I don't know the technical workings but how do other apps handle this? For example, in Chrome or FF, if I scroll and let the inertia keep scrolling, even if I press CTRL it won't zoom. Yet if I do it in VS Code then it will zoom.
I'm not sure, perhaps the OS gives more properties to the event but those properties are not present in the event that the browser creates? For example, the low level event could indicate if the scroll is part of inertia or not or that a single event is part of a larger animation.

I think in this particular case, on our side we would get individual events like the following: event with : event with : event for event with : event with : I don't think there is a property on the events to let us know that the last two wheel events need to be ignored because they are part of inertia. We could add something like if you press , then ignore the next wheel events for 50ms, but what if the next event is a legitimate one where you first start with and then do the . Also, what would be a good time? Maybe different OSes have different animation times. Also maybe this time can be user-configurable. I am open to ideas / PRs to improve this.
It must be present since Chrome/Firefox handle it fine. I will see if I can research this more. Thanks!

On a MacBook Pro, when I have enabled, the pinch-zooming is way too sensitive – I only move my fingers like 2-3 mm and the zoom ratio goes all the way up or down. For scrolling, there's a setting but I don't think anything similar exists for editor zooming; the default value is way too eager. Tried on these versions: Code 1.33.0 (, 2019-04-04T15:11:32.076Z) Code - Insiders 1.34.0-insider (, 2019-04-10T05:14:23.598Z) OS version: Darwin x64 18.5.0 Does this issue occur when all extensions are disabled?: Yes
I have the same problem on my Surface Pro 4.
I too experience this issue on a M1 MBP. Maybe I'm just OCD, but it drives me crazy when I do Cmd+Mouse/Track Wheel and the editor zoom goes to almost max.
I also experience this in a Windows laptop with a Precison touchpad. Both pinch to zoom and zooming with Ctrl + scroll gesture is too sensitive compared to, for example, web browsers
Tried this on my surface laptop and the editor still appears to be too sensitive to my pinching on the mouse pad. Is there a settig I should enable for the sensitivity? And the scrolling appears to "bounce back" into place when using the mouse pad. Is this expected?
Tried on my macbook pro with the mouse pad. Compared to how it was before, I feel that the sensitivity is fine. As the issue indicates, it would be great to be able to configure the sensitivity.