[NTUSER] Fix sticky mouse buttons (#6426)

Fix Mouse Buttons Sticking Down causing unexpected window dragging.
This is a patch supplied by @I_Kill_Bugs and seems to work well as tested by @julenuri.

JIRA issue: CORE-11775 'GIMP 2.6.12: Sticky issue when dragging with the mouse'
JIRA issue: CORE-14998 'Google Chrome 40.0.2214.115, when moving window position by dragging at the titlebar, the drag-end is not detected, the window may stick with the mouse pointer'
Improves JIRA issue: CORE-18511

Proposed changes
Add extra code into nonclient.c procedure DefWndDoSizeMove to drop tracking.
If we get a mouse move with the mouse left button down, then break out of testing.
This commit is contained in:
Doug Lyons 2024-03-13 01:16:02 -05:00 committed by GitHub
parent 9ae73010c2
commit f132020d8b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -394,11 +394,13 @@ DefWndDoSizeMove(PWND pwnd, WORD wParam)
if (msg.message == WM_KEYDOWN && (msg.wParam == VK_RETURN || msg.wParam == VK_ESCAPE))
break; // Exit on Return or Esc
if (!g_bWindowSnapEnabled && (msg.message == WM_LBUTTONUP))
if (!g_bWindowSnapEnabled && (msg.message == WM_LBUTTONUP ||
(msg.message == WM_MOUSEMOVE && (msg.wParam & MK_LBUTTON) == 0)))
{ // If no WindowSnapEnabled: Exit on button-up immediately
break;
}
else if (g_bWindowSnapEnabled && msg.message == WM_LBUTTONUP)
else if (g_bWindowSnapEnabled && (msg.message == WM_LBUTTONUP ||
(msg.message == WM_MOUSEMOVE && (msg.wParam & MK_LBUTTON) == 0)))
{ // If WindowSnapEnabled: Decide whether to snap before exiting
DWORD ExStyleTB, StyleTB;
BOOL IsTaskBar;