Photoshop 27.11.0.26: Polygonal Lasso mouse wheel failure caused by incorrect MSG.pt (0,0) in maximized window
Bug Description
In Photoshop 2026 (27.11.0.26) on Windows 11, the mouse wheel stops scrolling the canvas after the first anchor point is placed with the Polygonal Lasso tool when the Photoshop application window is maximized.
I have identified the underlying failure mechanism through static disassembly and live debugging.
Steps to Reproduce
-
Maximize the Photoshop application window.
-
Disable "Zoom with Scroll Wheel" under Preferences > Tools.
-
Open an image and zoom in until vertical scrolling is necessary.
-
Select the Polygonal Lasso tool.
-
Place the first anchor point on the canvas.
-
Scroll the mouse wheel vertically.
Expected: The canvas scrolls vertically while the Polygonal Lasso selection remains active.
Actual: The canvas does not move. Scrolling works again when Photoshop is restored to a normal window positioned away from the screen origin.
Resetting tools and preferences does not fix the problem.
Environment
-
Photoshop: 27.11.0.26
-
Build: 20260929.r.26 8c16e56
-
OS: Windows 11
-
Window DPI: 144
-
PE timestamp: 0x6ABC3F42
Root Cause Identified
Photoshop internally constructs a Windows MSG structure that contains the correct mouse wheel coordinates in lParam, but incorrectly initializes MSG.pt.x and MSG.pt.y to zero.
At RVA 0x640D0E3, the instruction writes zero to the MSG.pt coordinates. The message is then passed through a call at RVA 0x64100B8 to the wheel-routing function at RVA 0x63F6730.
The wheel handler uses WindowFromPoint(MSG.pt).
When Photoshop is maximized, (0,0) resolves to the Photoshop OWL.ApplicationBar. The invalid first processing path enters the wheel handler and updates shared failure state. The subsequent wheel-processing path, which has the correct coordinates, is then rejected by the document routing logic.
When Photoshop is restored to a normal window, (0,0) resolves to the Windows desktop instead. The invalid processing path exits before modifying the shared state, and the subsequent valid wheel message scrolls the canvas correctly.
This behavior was confirmed across eight complete wheel-processing groups in both window states.
Experimental Confirmation
I also tested a workaround using a separate, non-activating 1×1 pixel window positioned at screen coordinate (0,0).
With Photoshop maximized, this makes the invalid first message resolve outside the Photoshop process.
Mouse wheel scrolling during an active Polygonal Lasso selection immediately works again.
The workaround does not modify Photoshop's executable, memory, or preferences.
Suggested Engineering Fix
For WM_MOUSEWHEEL and WM_MOUSEHWHEEL messages, ensure that MSG.pt contains the actual signed screen coordinates extracted from lParam before window-target routing.
msg.pt.x = GET_X_LPARAM(msg.lParam);
msg.pt.y = GET_Y_LPARAM(msg.lParam);This should be restricted to applicable mouse messages, and the existing double-processing path should be reviewed to avoid duplicate scrolling.
Request
Please escalate this issue to the Photoshop Windows input/message-handling engineering team.
I can provide the corresponding debugger traces, instruction addresses, and detailed comparative analysis.
The issue is reproducible, has survived preference resets, and has been narrowed down to a specific internal message-handling failure.
