XDisplay's nextEvent completed
This commit is contained in:
parent
ae3dc273c4
commit
de712f8567
2 changed files with 24 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -77,6 +77,8 @@ public:
|
|||
|
||||
void grab();
|
||||
void ungrab();
|
||||
|
||||
bool nextEvent(XEvent &e);
|
||||
};
|
||||
|
||||
#endif // _XDisplay_h
|
||||
|
|
Loading…
Reference in a new issue