https://bugs.winehq.org/show_bug.cgi?id=13683
--- Comment #52 from Christopher Thielen cthielen@gmail.com --- I can confirm the following patch resolves this bug.
It also causes Wine to correctly mimic Windows' behavior in my demo. I am not sure why the original author of user32.dll was making the check I removed. Is there a good way to determine who has solid knowledge of user32.dll to ensure I'm not removing behavior erroneously?
(Generated against wine.git on 11/15/15 at 19:28 PST):
diff --git a/dlls/user32/input.c b/dlls/user32/input.c index 40e35a9..63fae67 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -108,7 +108,7 @@ BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) { USER_Driver->pSetCapture( hwnd, gui_flags );
- if (previous && previous != hwnd) + if (previous) SendMessageW( previous, WM_CAPTURECHANGED, 0, (LPARAM)hwnd );
if (prev_ret) *prev_ret = previous;