[PATCH 1/5] d3d9: Minimize device windows on focus loss.
Stefan Dösinger
stefan at codeweavers.com
Tue Sep 23 05:57:14 CDT 2014
---
dlls/d3d9/Makefile.in | 2 +-
dlls/d3d9/device.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d9/Makefile.in b/dlls/d3d9/Makefile.in
index 1c05f5a..f8b2d2b 100644
--- a/dlls/d3d9/Makefile.in
+++ b/dlls/d3d9/Makefile.in
@@ -1,6 +1,6 @@
MODULE = d3d9.dll
IMPORTLIB = d3d9
-IMPORTS = dxguid uuid wined3d
+IMPORTS = dxguid user32 uuid wined3d
C_SRCS = \
buffer.c \
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index a40a6a1..c6bab8f 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -3459,7 +3459,23 @@ static void CDECL device_parent_activate(struct wined3d_device_parent *device_pa
return;
if (!activate)
+ {
InterlockedCompareExchange(&device->device_state, D3D9_DEVICE_STATE_LOST, D3D9_DEVICE_STATE_OK);
+
+ if (!device->d3d_parent->extended)
+ {
+ UINT i, count = wined3d_device_get_swapchain_count(device->wined3d_device);
+ struct wined3d_swapchain *swapchain;
+ struct wined3d_swapchain_desc desc;
+
+ for (i = 0; i < count; i++)
+ {
+ swapchain = wined3d_device_get_swapchain(device->wined3d_device, i);
+ wined3d_swapchain_get_desc(swapchain, &desc);
+ ShowWindow(desc.device_window, SW_MINIMIZE);
+ }
+ }
+ }
else if (device->d3d_parent->extended)
InterlockedCompareExchange(&device->device_state, D3D9_DEVICE_STATE_OK, D3D9_DEVICE_STATE_LOST);
else
--
1.8.5.5
More information about the wine-patches
mailing list