28 lines
445 B
C
28 lines
445 B
C
|
#include <SystrayErrorHandler.h>
|
||
|
|
||
|
|
||
|
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;
|
||
|
}
|