Setting some windows relations.

Dmitry Timoshkov dmitry at baikal.ru
Sat Nov 21 02:15:24 CST 2015


Hi Ken,

Ken Thomases <ken at codeweavers.com> wrote:

> > --- a/dlls/user32/win.c
> > +++ b/dlls/user32/win.c
> > @@ -728,6 +728,8 @@ HWND WIN_SetOwner( HWND hwnd, HWND owner )
> >      }
> >      SERVER_END_REQ;
> >      WIN_ReleasePtr( win );
> > +
> > +    USER_Driver->pSetParent( hwnd, owner, ret );
> >      return ret;
> >  }
> 
> That doesn't seem right.  The owner is not really the parent (even if the hWndParent parameter of CreateWindowEx() is overloaded to mean the owner in some cases).  Telling the user driver that the owner is now the parent is likely to make it destroy the native window.  In any case, it's not right semantically.
> 
> Also, it's likely to screw up OpenGL due to the call to set_gl_drawable_parent() in X11DRV_SetParent() [or set_gl_view_parent() in macdrv_SetParent()].
> 
> This may need a new driver entry point.

I'm fully agree on all points, the patch is just a proof of concept.

-- 
Dmitry.



More information about the wine-devel mailing list