Module: wine Branch: master Commit: e2e0c747a82bd9f8c095366b4457dda5a0cbc1f1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2e0c747a82bd9f8c095366b44...
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
---
dlls/d3d9/tests/device.c | 2 +- dlls/wined3d/swapchain.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index cadd461..7513df6 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -4310,7 +4310,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/swapchain.c b/dlls/wined3d/swapchain.c index 7bbcc86..06215fc 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -1525,6 +1525,7 @@ HRESULT CDECL wined3d_swapchain_set_fullscreen(struct wined3d_swapchain *swapcha
if (swapchain->desc.windowed) { + /* Switch from windowed to fullscreen */ HWND focus_window = device->create_parms.focus_window; if (!focus_window) focus_window = swapchain->device_window; @@ -1534,20 +1535,24 @@ HRESULT CDECL wined3d_swapchain_set_fullscreen(struct wined3d_swapchain *swapcha return hr; }
- /* switch from windowed to fs */ wined3d_device_setup_fullscreen_window(device, swapchain->device_window, width, height); } else { /* Fullscreen -> fullscreen mode change */ + BOOL filter_messages = device->filter_messages; + device->filter_messages = TRUE; + MoveWindow(swapchain->device_window, 0, 0, width, height, TRUE); + + device->filter_messages = filter_messages; } swapchain->d3d_mode = actual_mode; } else if (!swapchain->desc.windowed) { - RECT *window_rect = NULL; /* Fullscreen -> windowed switch */ + RECT *window_rect = NULL; if (swapchain->desc.flags & WINED3D_SWAPCHAIN_RESTORE_WINDOW_RECT) window_rect = &swapchain->original_window_rect; wined3d_device_restore_fullscreen_window(device, swapchain->device_window, window_rect);