Adding the locking fixes the problem about icons not docking properly that I described in one of my posts yesterday. It's much better now.
James On Wed, 2005-09-21 at 13:58 -0500, Robert Shearman wrote: > Alexandre Julliard wrote: > > >Robert Shearman <[EMAIL PROTECTED]> writes: > > > > > >>+ ev.xclient.type = ClientMessage; > >>+ ev.xclient.window = systray_window; > >>+ ev.xclient.message_type = x11drv_atom(_NET_SYSTEM_TRAY_OPCODE); > >>+ ev.xclient.format = 32; > >>+ ev.xclient.data.l[0] = CurrentTime; > >>+ ev.xclient.data.l[1] = SYSTEM_TRAY_REQUEST_DOCK; > >>+ ev.xclient.data.l[2] = data->whole_window; > >>+ XSendEvent( display, systray_window, False, NoEventMask, &ev ); > >>+ XSync( display, False ); > >> > >> > > > >You need to get the tsx11 lock when calling X functions. Also what's > >the reason for having an XSync here? > > > > I've added the locking. The XSync is needed because without it the > systray window ends up with a width of 1. I don't understand why this is > happening. What debug channels would be good to turn on to investigate this? >