Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com> --- dlls/wined3d/swapchain.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c index 9c48de2193c..5cca4be9775 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -1132,13 +1132,15 @@ void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activa { struct wined3d_device *device = swapchain->device; BOOL filter_messages = device->filter_messages; + BOOL focus_messages = device->wined3d->flags & WINED3D_FOCUS_MESSAGES; /* This code is not protected by the wined3d mutex, so it may run while * wined3d_device_reset is active. Testing on Windows shows that changing * focus during resets and resetting during focus change events causes * the application to crash with an invalid memory access. */ - device->filter_messages = !(device->wined3d->flags & WINED3D_FOCUS_MESSAGES); + if (!focus_messages) + device->filter_messages = 1; if (activate) { @@ -1190,7 +1192,8 @@ void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activa ShowWindow(swapchain->device_window, SW_MINIMIZE); } - device->filter_messages = filter_messages; + if (!focus_messages) + device->filter_messages = filter_messages; } HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapchain, unsigned int buffer_count, -- 2.18.1