Commit 990c1410 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Don't touch the window's focus or wndproc for windowed devices.

parent 381fa893
...@@ -1383,12 +1383,15 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface, ...@@ -1383,12 +1383,15 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface,
if(This->d3d_initialized) return WINED3DERR_INVALIDCALL; if(This->d3d_initialized) return WINED3DERR_INVALIDCALL;
if(!This->adapter->opengl) return WINED3DERR_INVALIDCALL; if(!This->adapter->opengl) return WINED3DERR_INVALIDCALL;
This-> focus_window = This->createParms.hFocusWindow; if (!pPresentationParameters->Windowed)
if (!This->focus_window) This->focus_window = pPresentationParameters->hDeviceWindow;
if (!wined3d_register_window(This->focus_window, This))
{ {
ERR("Failed to register window %p.\n", This->focus_window); This->focus_window = This->createParms.hFocusWindow;
return E_FAIL; if (!This->focus_window) This->focus_window = pPresentationParameters->hDeviceWindow;
if (!wined3d_register_window(This->focus_window, This))
{
ERR("Failed to register window %p.\n", This->focus_window);
return E_FAIL;
}
} }
TRACE("(%p) : Creating stateblock\n", This); TRACE("(%p) : Creating stateblock\n", This);
...@@ -1444,7 +1447,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface, ...@@ -1444,7 +1447,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface,
} }
} }
SetFocus(This->focus_window); if (This->focus_window) SetFocus(This->focus_window);
/* Setup the implicit swapchain. This also initializes a context. */ /* Setup the implicit swapchain. This also initializes a context. */
TRACE("Creating implicit swapchain\n"); TRACE("Creating implicit swapchain\n");
...@@ -1580,7 +1583,7 @@ err_out: ...@@ -1580,7 +1583,7 @@ err_out:
if (This->shader_priv) { if (This->shader_priv) {
This->shader_backend->shader_free_private(iface); This->shader_backend->shader_free_private(iface);
} }
wined3d_unregister_window(This->focus_window); if (This->focus_window) wined3d_unregister_window(This->focus_window);
return hr; return hr;
} }
...@@ -1771,7 +1774,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface, ...@@ -1771,7 +1774,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface,
This->d3d_initialized = FALSE; This->d3d_initialized = FALSE;
wined3d_unregister_window(This->focus_window); if (This->focus_window) wined3d_unregister_window(This->focus_window);
return WINED3D_OK; return WINED3D_OK;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment