Alexandre Julliard : winex11: Create a dummy parent window for composite child windows to avoid using the root .
Alexandre Julliard
julliard at winehq.org
Mon May 12 13:41:09 CDT 2008
Module: wine
Branch: master
Commit: b605980bf15fbc83cc0e38d951731ccbd2125401
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b605980bf15fbc83cc0e38d951731ccbd2125401
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon May 12 19:14:11 2008 +0200
winex11: Create a dummy parent window for composite child windows to avoid using the root.
---
dlls/winex11.drv/window.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 791dcd0..191931a 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -454,21 +454,26 @@ BOOL X11DRV_set_win_format( HWND hwnd, XID fbconfig_id )
if(usexcomposite)
{
XSetWindowAttributes attrib;
- Window parent = X11DRV_get_whole_window( GetAncestor( hwnd, GA_ROOT ));
+ static Window dummy_parent;
- if (!parent) parent = root_window;
wine_tsx11_lock();
- data->colormap = XCreateColormap(gdi_display, parent, vis->visual,
+ attrib.override_redirect = True;
+ if (!dummy_parent)
+ {
+ dummy_parent = XCreateWindow( gdi_display, root_window, -1, -1, 1, 1, 0, screen_depth,
+ InputOutput, visual, CWOverrideRedirect, &attrib );
+ XMapWindow( gdi_display, dummy_parent );
+ }
+ data->colormap = XCreateColormap(gdi_display, dummy_parent, vis->visual,
(vis->class == PseudoColor ||
vis->class == GrayScale ||
vis->class == DirectColor) ?
AllocAll : AllocNone);
- attrib.override_redirect = True;
attrib.colormap = data->colormap;
XInstallColormap(gdi_display, attrib.colormap);
if(data->gl_drawable) XDestroyWindow(gdi_display, data->gl_drawable);
- data->gl_drawable = XCreateWindow(gdi_display, parent, -w, 0, w, h, 0,
+ data->gl_drawable = XCreateWindow(gdi_display, dummy_parent, -w, 0, w, h, 0,
vis->depth, InputOutput, vis->visual,
CWColormap | CWOverrideRedirect,
&attrib);
More information about the wine-cvs
mailing list