diff --git a/debian/changelog b/debian/changelog index 90e4232a..1e786e21 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,5 @@ wine-staging (1.7.41) UNRELEASED; urgency=low + * Updated server-PeekMessage patchset to reset message filter in accept_hardware_message call (fixes Wine Staging Bug #211). * Disable DXVA2 controls in winecfg when support is not compiled in. * Added patch to enable/disable EAX support via winecfg. * Added patch with stub for setupapi.SetupDiSetDeviceInstallParamsW. diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a3a9f6c2..858b0adf 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -3958,7 +3958,7 @@ fi if test "$enable_server_PeekMessage" -eq 1; then patch_apply server-PeekMessage/0001-server-Fix-handling-of-GetMessage-after-previous-Pee.patch ( - echo '+ { "Sebastian Lackner", "server: Fix handling of GetMessage after previous PeekMessage call.", 1 },'; + echo '+ { "Sebastian Lackner", "server: Fix handling of GetMessage after previous PeekMessage call.", 2 },'; ) >> "$patchlist" fi diff --git a/patches/server-PeekMessage/0001-server-Fix-handling-of-GetMessage-after-previous-Pee.patch b/patches/server-PeekMessage/0001-server-Fix-handling-of-GetMessage-after-previous-Pee.patch index 35ba53d1..46c7de0f 100644 --- a/patches/server-PeekMessage/0001-server-Fix-handling-of-GetMessage-after-previous-Pee.patch +++ b/patches/server-PeekMessage/0001-server-Fix-handling-of-GetMessage-after-previous-Pee.patch @@ -1,15 +1,18 @@ -From 514cdcbb66a3123b7f3922a54b16e8aa8ecd387f Mon Sep 17 00:00:00 2001 +From 97a7b572e7556d8867f025d94b9d361c3dd19a5a Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 15 Mar 2015 01:05:48 +0100 Subject: server: Fix handling of GetMessage after previous PeekMessage call. + (v2) +Changes in v2: +* accept_hardware_message should also reset ignore_post_msg --- dlls/user32/tests/msg.c | 9 --------- - server/queue.c | 31 ++++++++++++++++++++++++++----- - 2 files changed, 26 insertions(+), 14 deletions(-) + server/queue.c | 34 +++++++++++++++++++++++++++++----- + 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c -index c297e40..19ddfde 100644 +index 5f10a89..dfb002e 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -10459,13 +10459,10 @@ static void test_PeekMessage3(void) @@ -60,7 +63,7 @@ index c297e40..19ddfde 100644 ret = PeekMessageA(&msg, NULL, 0, 0, 0); ok(!ret, "expected PeekMessage to return FALSE, got %u\n", ret); diff --git a/server/queue.c b/server/queue.c -index 3a321cd..ce78e4d 100644 +index 3a321cd..68b6a19 100644 --- a/server/queue.c +++ b/server/queue.c @@ -138,6 +138,7 @@ struct msg_queue @@ -183,6 +186,17 @@ index 3a321cd..ce78e4d 100644 } +@@ -2445,7 +2466,10 @@ DECL_HANDLER(reply_message) + DECL_HANDLER(accept_hardware_message) + { + if (current->queue) ++ { + release_hardware_message( current->queue, req->hw_id, req->remove ); ++ if (req->remove) current->queue->ignore_post_msg = 0; ++ } + else + set_error( STATUS_ACCESS_DENIED ); + } -- -2.3.2 +2.3.5