[PATCH 3/3] wined3d: Filter messages for fullscreen mode changes.
Józef Kucia
jkucia at codeweavers.com
Tue Dec 13 06:10:38 CST 2016
This fixes a regression introduced by commit
d9f8cba50f4c2fc9f138d35c73ba5afc30d15866.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
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);
--
2.7.3
More information about the wine-patches
mailing list