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 <rob(a)codeweavers.com> 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?