Alexandre Julliard : x11drv: Avoid setting text or WM hints of the X root window.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 28 04:44:31 CST 2006


Module: wine
Branch: refs/heads/master
Commit: c44410d1e358b9690cdabd9e55f076ffc926d180
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=c44410d1e358b9690cdabd9e55f076ffc926d180

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Mar 28 12:21:37 2006 +0200

x11drv: Avoid setting text or WM hints of the X root window.

---

 dlls/x11drv/window.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/x11drv/window.c b/dlls/x11drv/window.c
index ccb5d4a..67be435 100644
--- a/dlls/x11drv/window.c
+++ b/dlls/x11drv/window.c
@@ -122,7 +122,10 @@ BOOL X11DRV_is_window_rect_mapped( const
 static int get_window_attributes( Display *display, struct x11drv_win_data *data,
                                   XSetWindowAttributes *attr )
 {
-    if (!data->managed && (root_window == DefaultRootWindow( display )) && is_window_managed( data->hwnd ))
+    if (!data->managed &&
+        root_window == DefaultRootWindow( display ) &&
+        data->whole_window != root_window &&
+        is_window_managed( data->hwnd ))
     {
         data->managed = TRUE;
         SetPropA( data->hwnd, managed_prop, (HANDLE)1 );
@@ -378,6 +381,7 @@ void X11DRV_set_wm_hints( Display *displ
 
     if (data->hwnd == GetDesktopWindow())
     {
+        if (data->whole_window == DefaultRootWindow(display)) return;
         /* force some styles for the desktop to get the correct decorations */
         style |= WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
         owner = 0;
@@ -508,7 +512,7 @@ void X11DRV_set_iconic_state( HWND hwnd 
     BOOL iconic = (style & WS_MINIMIZE) != 0;
 
     if (!(data = X11DRV_get_win_data( hwnd ))) return;
-    if (!data->whole_window) return;
+    if (!data->whole_window || data->whole_window == DefaultRootWindow(display)) return;
 
     GetWindowRect( hwnd, &rect );
 
@@ -754,7 +758,7 @@ void X11DRV_SetWindowText( HWND hwnd, LP
     Window win;
     XTextProperty prop;
 
-    if ((win = X11DRV_get_whole_window( hwnd )))
+    if ((win = X11DRV_get_whole_window( hwnd )) && win != DefaultRootWindow(display))
     {
         /* allocate new buffer for window text */
         count = WideCharToMultiByte(CP_UNIXCP, 0, text, -1, NULL, 0, NULL, NULL);




More information about the wine-cvs mailing list