diff --git a/README.md b/README.md index 420cdfa2..9a248225 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,10 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [2]:** +**Bug fixes and features included in the next upcoming release [3]:** * Implement stub for ProcessQuotaLimits info class +* Release capture before sending WM_COMMAND ([Wine Bug #39296](https://bugs.winehq.org/show_bug.cgi?id=39296)) * Use wrapper function for consolidation callback during unwinding. ([Wine Bug #39449](https://bugs.winehq.org/show_bug.cgi?id=39449)) diff --git a/debian/changelog b/debian/changelog index ac56ec35..2cb846fd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ wine-staging (1.7.54) UNRELEASED; urgency=low * Added patch to use wrapper function for consolidation callback during unwinding. * Added patch to implement stub for ProcessQuotaLimits info class. + * Added patch to release capture before sending WM_COMMAND. * Removed patch to implement kernel32.GetPhysicallyInstalledSystemMemory (accepted upstream). * Partially removed patches for ws2_32 TransmitFile (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3cc51993..57477508 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -278,6 +278,7 @@ patch_enable_all () enable_user32_Mouse_Message_Hwnd="$1" enable_user32_Painting="$1" enable_user32_Refresh_MDI_Menus="$1" + enable_user32_ReleaseCapture="$1" enable_user32_ScrollWindowEx="$1" enable_user32_WndProc="$1" enable_uxtheme_GTK_Theming="$1" @@ -931,6 +932,9 @@ patch_enable () user32-Refresh_MDI_Menus) enable_user32_Refresh_MDI_Menus="$2" ;; + user32-ReleaseCapture) + enable_user32_ReleaseCapture="$2" + ;; user32-ScrollWindowEx) enable_user32_ScrollWindowEx="$2" ;; @@ -5444,6 +5448,21 @@ if test "$enable_user32_Refresh_MDI_Menus" -eq 1; then ) >> "$patchlist" fi +# Patchset user32-ReleaseCapture +# | +# | This patchset fixes the following Wine bugs: +# | * [#39296] Release capture before sending WM_COMMAND +# | +# | Modified files: +# | * dlls/user32/button.c +# | +if test "$enable_user32_ReleaseCapture" -eq 1; then + patch_apply user32-ReleaseCapture/0001-user32-Release-capture-before-sending-WM_COMMAND.patch + ( + echo '+ { "Alex Henrie", "user32: Release capture before sending WM_COMMAND.", 1 },'; + ) >> "$patchlist" +fi + # Patchset user32-ScrollWindowEx # | # | This patchset fixes the following Wine bugs: diff --git a/patches/user32-ReleaseCapture/0001-user32-Release-capture-before-sending-WM_COMMAND.patch b/patches/user32-ReleaseCapture/0001-user32-Release-capture-before-sending-WM_COMMAND.patch new file mode 100644 index 00000000..e8e5fa47 --- /dev/null +++ b/patches/user32-ReleaseCapture/0001-user32-Release-capture-before-sending-WM_COMMAND.patch @@ -0,0 +1,34 @@ +From 031d48634a011950fec9990d4bccf835d5b016fa Mon Sep 17 00:00:00 2001 +From: Alex Henrie +Date: Mon, 12 Oct 2015 01:30:51 -0600 +Subject: user32: Release capture before sending WM_COMMAND. + +Fixes https://bugs.winehq.org/show_bug.cgi?id=39296 + +Signed-off-by: Alex Henrie +--- + dlls/user32/button.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/dlls/user32/button.c b/dlls/user32/button.c +index eeb3035..db479a8 100644 +--- a/dlls/user32/button.c ++++ b/dlls/user32/button.c +@@ -353,9 +353,13 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, + (state & BST_INDETERMINATE) ? 0 : ((state & 3) + 1), 0 ); + break; + } ++ ReleaseCapture(); + BUTTON_NOTIFY_PARENT(hWnd, BN_CLICKED); + } +- ReleaseCapture(); ++ else ++ { ++ ReleaseCapture(); ++ } + break; + + case WM_CAPTURECHANGED: +-- +2.6.1 + diff --git a/patches/user32-ReleaseCapture/definition b/patches/user32-ReleaseCapture/definition new file mode 100644 index 00000000..3deafa56 --- /dev/null +++ b/patches/user32-ReleaseCapture/definition @@ -0,0 +1 @@ +Fixes: [39296] Release capture before sending WM_COMMAND