Alexandre Julliard wrote:
Robert Shearman rob@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?