|
|
1.1 root 1: #include "copyright.h"
2:
3: /* $Header: XPeekEvent.c,v 11.11 87/09/11 08:05:29 toddb Exp $ */
4: /* Copyright Massachusetts Institute of Technology 1986 */
5:
6: #define NEED_EVENTS
7: #include "Xlibint.h"
8:
9: extern _XQEvent *_qfree;
10:
11: /*
12: * Flush output and (wait for and) return the next event in the queue,
13: * BUT do not remove it from the queue.
14: */
15:
16: XPeekEvent (dpy, event)
17: register Display *dpy;
18: register XEvent *event;
19: {
20: register _XQEvent *qelt;
21: xEvent ev;
22:
23: LockDisplay(dpy);
24: _XFlush (dpy);
25: if (qelt = (_XQEvent *)dpy->head) {
26: *event = qelt->event;
27: UnlockDisplay(dpy);
28: return;
29: }
30:
31: while (1) {
32: _XRead (dpy, (char *)&ev, (long) sizeof(xEvent));
33: if (ev.u.u.type == X_Error)
34: _XError (dpy, (xError *) event);
35: else { /* it's an event packet */
36: _XEnq (dpy, &ev);
37: *event = dpy->head->event;
38: UnlockDisplay(dpy);
39: return;
40: }
41: }
42: }
43:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.