Module: wine Branch: oldstable Commit: 67a83e5d919930fa5ddeded32d9ace9ddc80a483 URL: http://source.winehq.org/git/wine.git/?a=commit;h=67a83e5d919930fa5ddeded32d...
Author: Józef Kucia jkucia@codeweavers.com Date: Tue Dec 13 13:10:38 2016 +0100
wined3d: Filter messages for fullscreen mode changes.
This fixes a regression introduced by commit d9f8cba50f4c2fc9f138d35c73ba5afc30d15866.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit e2e0c747a82bd9f8c095366b4457dda5a0cbc1f1) Conflicts: dlls/wined3d/swapchain.c Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/d3d9/tests/device.c | 2 +- dlls/wined3d/device.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 072fbcb..5c40587 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -4132,7 +4132,7 @@ static void test_reset_fullscreen(void) ok(SUCCEEDED(reset_device(device, &device_desc)), "Failed to reset device.\n");
flush_events(); - todo_wine ok(!wm_size_received, "Received unexpected WM_SIZE message.\n"); + ok(!wm_size_received, "Received unexpected WM_SIZE message.\n");
cleanup: if (device) IDirect3DDevice9_Release(device); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index b9ab347..305479b 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -4648,6 +4648,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, { if (swapchain->desc.windowed) { + /* Switch from windowed to fullscreen */ HWND focus_window = device->create_parms.focus_window; if (!focus_window) focus_window = swapchain_desc->device_window; @@ -4657,7 +4658,6 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, return hr; }
- /* switch from windowed to fs */ wined3d_device_setup_fullscreen_window(device, swapchain->device_window, swapchain_desc->backbuffer_width, swapchain_desc->backbuffer_height); @@ -4665,10 +4665,15 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, else { /* Fullscreen -> fullscreen mode change */ + BOOL filter_messages = device->filter_messages; + device->filter_messages = TRUE; + MoveWindow(swapchain->device_window, 0, 0, swapchain_desc->backbuffer_width, swapchain_desc->backbuffer_height, TRUE); + + device->filter_messages = filter_messages; } swapchain->d3d_mode = m; }