Module: wine Branch: master Commit: 45d530461bf29c953f5f4532cc0e917b4c4fc296 URL: http://source.winehq.org/git/wine.git/?a=commit;h=45d530461bf29c953f5f4532cc...
Author: Stefan Dösinger stefan@codeweavers.com Date: Thu Nov 13 20:39:25 2014 +0100
wined3d: Minimize device windows on focus loss.
---
dlls/wined3d/device.c | 5 +++++ dlls/wined3d/swapchain.c | 6 ++++++ dlls/wined3d/wined3d_private.h | 1 + 3 files changed, 12 insertions(+)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index ee3636e..0de444b 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -4983,6 +4983,11 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL } else if (message == WM_ACTIVATEAPP) { + UINT i; + + for (i = 0; i < device->swapchain_count; i++) + wined3d_swapchain_activate(device->swapchains[i], wparam); + device->device_parent->ops->activate(device->device_parent, wparam); }
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c index 25e2107..4c0948f 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -1175,3 +1175,9 @@ void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) wined3d_resource_update_draw_binding(&swapchain->back_buffers[i]->resource); } } + +void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) +{ + if (!activate && !(swapchain->device->create_parms.flags & WINED3DCREATE_NOWINDOWCHANGES)) + ShowWindow(swapchain->device_window, SW_MINIMIZE); +} diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 4210d26..cba20f4 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2702,6 +2702,7 @@ struct wined3d_swapchain
void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *rect) DECLSPEC_HIDDEN;
+void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN; struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;