Józef Kucia : wined3d: Filter messages for fullscreen mode changes.
Module: wine Branch: oldstable Commit: 67a83e5d919930fa5ddeded32d9ace9ddc80a483 URL: http://source.winehq.org/git/wine.git/?a=commit;h=67a83e5d919930fa5ddeded32d... Author: Józef Kucia <jkucia(a)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(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit e2e0c747a82bd9f8c095366b4457dda5a0cbc1f1) Conflicts: dlls/wined3d/swapchain.c Signed-off-by: Michael Stefaniuc <mstefani(a)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; }
participants (1)
-
Alexandre Julliard