diff options
Diffstat (limited to 'nx-X11')
-rw-r--r-- | nx-X11/lib/X11/IfEvent.c | 1 | ||||
-rw-r--r-- | nx-X11/lib/X11/MaskEvent.c | 1 | ||||
-rw-r--r-- | nx-X11/lib/X11/NextEvent.c | 6 | ||||
-rw-r--r-- | nx-X11/lib/X11/PeekEvent.c | 6 | ||||
-rw-r--r-- | nx-X11/lib/X11/PeekIfEv.c | 1 | ||||
-rw-r--r-- | nx-X11/lib/X11/WinEvent.c | 6 |
6 files changed, 21 insertions, 0 deletions
diff --git a/nx-X11/lib/X11/IfEvent.c b/nx-X11/lib/X11/IfEvent.c index a7c0cb188..9cf07f56d 100644 --- a/nx-X11/lib/X11/IfEvent.c +++ b/nx-X11/lib/X11/IfEvent.c @@ -73,6 +73,7 @@ XIfEvent (dpy, event, predicate, arg) prev = NULL; #ifdef NX_TRANS_SOCKET if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); return 0; } #endif diff --git a/nx-X11/lib/X11/MaskEvent.c b/nx-X11/lib/X11/MaskEvent.c index c48a960d2..a46766685 100644 --- a/nx-X11/lib/X11/MaskEvent.c +++ b/nx-X11/lib/X11/MaskEvent.c @@ -77,6 +77,7 @@ XMaskEvent (dpy, mask, event) prev = NULL; #ifdef NX_TRANS_SOCKET if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); return 0; } #endif diff --git a/nx-X11/lib/X11/NextEvent.c b/nx-X11/lib/X11/NextEvent.c index 1c9080651..71d84223e 100644 --- a/nx-X11/lib/X11/NextEvent.c +++ b/nx-X11/lib/X11/NextEvent.c @@ -48,6 +48,12 @@ XNextEvent (dpy, event) if (dpy->head == NULL) _XReadEvents(dpy); +#ifdef NX_TRANS_SOCKET + if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); + return 0; + } +#endif qelt = dpy->head; *event = qelt->event; _XDeq(dpy, NULL, qelt); diff --git a/nx-X11/lib/X11/PeekEvent.c b/nx-X11/lib/X11/PeekEvent.c index b89c6c95e..b8d755f0a 100644 --- a/nx-X11/lib/X11/PeekEvent.c +++ b/nx-X11/lib/X11/PeekEvent.c @@ -46,6 +46,12 @@ XPeekEvent (dpy, event) LockDisplay(dpy); if (dpy->head == NULL) _XReadEvents(dpy); +#ifdef NX_TRANS_SOCKET + if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); + return 1; + } +#endif *event = (dpy->head)->event; UnlockDisplay(dpy); return 1; diff --git a/nx-X11/lib/X11/PeekIfEv.c b/nx-X11/lib/X11/PeekIfEv.c index a8da27932..93a725b49 100644 --- a/nx-X11/lib/X11/PeekIfEv.c +++ b/nx-X11/lib/X11/PeekIfEv.c @@ -73,6 +73,7 @@ XPeekIfEvent (dpy, event, predicate, arg) prev = NULL; #ifdef NX_TRANS_SOCKET if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); return 0; } #endif diff --git a/nx-X11/lib/X11/WinEvent.c b/nx-X11/lib/X11/WinEvent.c index 67e825cb5..961fcf74b 100644 --- a/nx-X11/lib/X11/WinEvent.c +++ b/nx-X11/lib/X11/WinEvent.c @@ -79,5 +79,11 @@ XWindowEvent (dpy, w, mask, event) if (prev && prev->qserial_num != qe_serial) /* another thread has snatched this event */ prev = NULL; +#ifdef NX_TRANS_SOCKET + if (_XGetIOError(dpy)) { + UnlockDisplay(dpy); + return 0; + } +#endif } } |