WineX11.drv: create X11 window for client area 1/3

Chris Robinson chris.kcat at gmail.com
Mon Dec 17 08:04:39 CST 2007


On Monday 17 December 2007 03:53:46 am Alexandre Julliard wrote:
> "Roderick Colenbrander" <thunderbird2k at gmx.net> writes:
> > +    {
> > +        escape.drawable = X11DRV_get_client_window( top );
> > +        if(!escape.drawable)
> > +            escape.drawable = X11DRV_get_whole_window( top );
>
> You shouldn't need that test, all windows should have a client window;
> otherwise you have to tell the server about it too.

The desktop/root_window doesn't have a client window. All attempts to give it 
one were met with limitted success.

> > @@ -1582,6 +1646,7 @@ void X11DRV_SetParent( HWND hwnd, HWND parent, HWND
> > old_parent ) {
> >          /* FIXME: we ignore errors since we can't really recover anyway
> > */ create_whole_window( display, data, GetWindowLongW( hwnd, GWL_STYLE )
> > ); +        create_client_window( display, data );
>
> You need to destroy the client window in SetParent too.

The client window, being a child of the whole window, should be destroyed 
automagically with the whole window. Though the client_window ID does at 
least need to be set to 0, I suppose.



More information about the wine-devel mailing list