summaryrefslogtreecommitdiff
path: root/src/XDisplay.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-05-16 22:48:44 +0000
committerDana Jansens <danakj@orodu.net>2002-05-16 22:48:44 +0000
commitde712f85676ca0a386c956165bb6460d65206c46 (patch)
treed0922eac5442e1f09b5b27a71d0e056456d4ac0d /src/XDisplay.cc
parentae3dc273c4b42553208d230a775731df18058a4a (diff)
XDisplay's nextEvent completed
Diffstat (limited to 'src/XDisplay.cc')
-rw-r--r--src/XDisplay.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/XDisplay.cc b/src/XDisplay.cc
index 1dfd55d0..822f244a 100644
--- a/src/XDisplay.cc
+++ b/src/XDisplay.cc
@@ -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;
+}