#include static Window lastErrorWindow = 0; static int systrayErrorHandler (Display *display, XErrorEvent *event) { if (event->error_code == BadWindow) { lastErrorWindow = event->resourceid; } return 0; } void setSystrayErrorHandler (void) { lastErrorWindow = 0; XSetErrorHandler(systrayErrorHandler); } Window getLastErrorWindow (void) { Window ret = lastErrorWindow; lastErrorWindow = 0; return ret; }