Thank you for the response.  I will try to use the same style as the rest of the file.  The application (WoW) only calls D3D's SetCursor().  It calls this to make the cursor not visible anymore, since it draws its own.  Currently, D3D's SetCursor() will not remove the system mouse cursor, which causes it to be drawn over the one that WoW draws.  There needs to be code to remove the system cursor to begin with, every time a d3d application starts, otherwise the approach of "drawing it ourselves" will not work.  The window manager already draws it.  Unless we "undraw" the cursor that the wm makes, it will stay there.  Again, you guys know more than me about this, but it seems a quick call to User32's SetCursor() is the cleanest way to fix said problem, as msdn allows it.
<br><br><div><span class="gmail_quote">On 7/29/06, <b class="gmail_sendername">H. Verbeet</b> &lt;<a href="mailto:hverbeet@gmail.com">hverbeet@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 29/07/06, Andrew Riedi &lt;<a href="mailto:andrewriedi@gmail.com">andrewriedi@gmail.com</a>&gt; wrote:<br>&gt; Well, here is my first patch, feel free to tell me what all is wrong with<br>&gt; it.&nbsp;&nbsp;I noticed a problem in WoW d3d, so I tracked it down and checked out
<br>&gt; msdn.&nbsp;&nbsp;It seems that implementing ShowCursor() over GDI is acceptable, at<br>&gt; least according to msdn, and it seems to work great.&nbsp;&nbsp;Anyhow, this patch<br>&gt; fixes the two mouse cursor problem in WoW, and makes wined3d more compatible
<br>&gt; with windows, at least msdn.&nbsp;&nbsp;Here goes nothing.<br>&gt;<br>&gt; --<br>&gt; Andrew Riedi<br>That's not quite what MSDN says. It says that the Direct3D cursor can<br>be implemented either by using user32 cursors to draw the cursor, or
<br>by doing the drawing itself. We currently do the latter, so I don't<br>think we should touch the user32 cursor in<br>IWineD3DDeviceImpl_ShowCursor(). Also see MSDN on<br>IDirect3DDevice9::SetCursorProperties().<br><br>
You'll probably want to check if the application calls SetCursor(NULL)<br>anywhere, I don't think that works properly at the moment in wine, if<br>no cursor has been explicitly set before. (It checks if the cursor has<br>
changed in SetCursor(), but initially thread_info-&gt;cursor seems to be<br>NULL, rather than the default cursor.) Note that you'll have to add<br>your own TRACEs to do that though, as the TRACE in SetCursor() won't<br>catch it.
<br><br>Also, please try to use the same style for patches as the rest of the<br>file. ie, spaces rather than tabs, braces, etc.<br></blockquote></div><br><br clear="all"><br>-- <br>Andrew Riedi