XDisplay's nextEvent completed

This commit is contained in:
Dana Jansens 2002-05-16 22:48:44 +00:00
parent ae3dc273c4
commit de712f8567
2 changed files with 24 additions and 0 deletions

View file

@ -131,3 +131,25 @@ void XDisplay::ungrab() {
if (--_grabs == 0)
XUngrabServer(_display);
}
/*
* Gets the next event on the queue from the X server.
*
* Returns: true if e contains a new event; false if there is no event to be
* returned.
*/
bool XDisplay::nextEvent(XEvent &e) {
if(!XPending(_display))
return false;
XNextEvent(_display, &e);
if (_last_bad_window != None) {
if (e.xany.window == _last_bad_window) {
cerr << "XDisplay::nextEvent(): Removing event for bad window from " <<
"event queue\n";
return false;
} else
_last_bad_window = None;
}
return true;
}

View file

@ -77,6 +77,8 @@ public:
void grab();
void ungrab();
bool nextEvent(XEvent &e);
};
#endif // _XDisplay_h