#52777·electron

Offscreen wheel input does not retarget to a nested scroller

Author: eric8810Created Aug 12, 2026Updated Sep 16, 2026
Labelsplatform/macOSbug :beetle:has-repro-gist41-x-y
### Preflight Checklist - [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/main/CONTRIBUTING.md) for this project. - [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project adheres to. - [x] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a bug report that matches the one I want to file, without success. ### Electron Version 41.7.1 ### What operating system(s) are you using? macOS ### Operating System Version macOS 26.5.2 (25F84) ### What arch are you using? arm64 (including Apple Silicon) ### Last Known Working Electron version Unknown ### Does the issue also appear in Chromium / Google Chrome? I don't know how to test ### Expected Behavior For an offscreen-rendered page, a reversed wheel packet should be retargeted to the scrollable element under the pointer after the preceding direction was unconsumed at a scroll boundary. ### Actual Behavior After an unconsumed wheel packet at the top boundary, reversing the direction does not scroll the nested container under the pointer. The nested container remains at its top boundary. ### Testcase Gist URL https://gist.github.com/eric8810/3c54f310f196ea987a7ebcbf42ce2bd5 ### Additional Information The issue reproduces with ordinary `offscreen: true`; shared-texture output is not required. A proposed fix and regression spec are in #52776. In-depth investigation

`OffScreenRenderWidgetHostView::SendMouseWheelEvent()` lets `MouseWheelPhaseHandler` update a mutable copy of the event but forwards the original event. The view also does not feed gesture acknowledgements back into the phase handler. Forwarding the adjusted event and handling `GestureEventAck()` allows the reversed packet to begin a new sequence at the point under the pointer.