Fix Xlib locking in create_desktop

Mike Hearn mh at codeweavers.com
Thu Dec 23 07:53:09 CST 2004


-------------- next part --------------
--- dlls/x11drv/window.c  (revision 6)
+++ dlls/x11drv/window.c  (local)
@@ -744,22 +744,24 @@ void X11DRV_register_window( Display *di
 static void create_desktop( Display *display, WND *wndPtr )
 {
     X11DRV_WND_DATA *data = wndPtr->pDriverData;
+    HANDLE visualid;
 
     wine_tsx11_lock();
     winContext = XUniqueContext();
     XInternAtoms( display, (char **)atom_names, NB_XATOMS - FIRST_XATOM, False, X11DRV_Atoms );
+    visualid = (HANDLE)XVisualIDFromVisual(visual);
     wine_tsx11_unlock();
 
-    whole_window_atom  = MAKEINTATOMA( GlobalAddAtomA( "__wine_x11_whole_window" ));
-    client_window_atom = MAKEINTATOMA( GlobalAddAtomA( "__wine_x11_client_window" ));
-    icon_window_atom   = MAKEINTATOMA( GlobalAddAtomA( "__wine_x11_icon_window" ));
+    whole_window_atom  = MAKEINTATOMA(GlobalAddAtomA( "__wine_x11_whole_window" ));
+    client_window_atom = MAKEINTATOMA(GlobalAddAtomA( "__wine_x11_client_window" ));
+    icon_window_atom   = MAKEINTATOMA(GlobalAddAtomA( "__wine_x11_icon_window" ));
 
     data->whole_window = data->client_window = root_window;
     data->whole_rect = data->client_rect = wndPtr->rectWindow;
 
     SetPropA( wndPtr->hwndSelf, whole_window_atom, (HANDLE)root_window );
     SetPropA( wndPtr->hwndSelf, client_window_atom, (HANDLE)root_window );
-    SetPropA( wndPtr->hwndSelf, "__wine_x11_visual_id", (HANDLE)XVisualIDFromVisual(visual) );
+    SetPropA( wndPtr->hwndSelf, "__wine_x11_visual_id", visualid );
 
     X11DRV_InitClipboard();
 


More information about the wine-patches mailing list