aboutsummaryrefslogtreecommitdiff
path: root/doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-13 14:14:26 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-13 14:18:50 +0100
commit1e5ee575d4912665dd2356681f0827d5229fa1f5 (patch)
tree31db7768b2686507a5f9ea2ffa03d9c62ccf78c9 /doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch
parent1fd8551f1632efbc2655c9293087bba08cf2f0c9 (diff)
downloadnx-libs-1e5ee575d4912665dd2356681f0827d5229fa1f5.tar.gz
nx-libs-1e5ee575d4912665dd2356681f0827d5229fa1f5.tar.bz2
nx-libs-1e5ee575d4912665dd2356681f0827d5229fa1f5.zip
nx-X11 vs. X.Org 6.9 patches for further studying / documentation
NoMachine kept all original X.Org 6.9 files in the nx-X11 source tree. These files have been removed in Feb 2015 during a major code cleanup. For later studying we provide all diffs of the changes that NoMachine employed on the original X.Org X11 code tree in the doc/nx-X11_vs_XOrg69_patches folder.
Diffstat (limited to 'doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch')
-rw-r--r--doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch b/doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch
new file mode 100644
index 000000000..333838d51
--- /dev/null
+++ b/doc/nx-X11_vs_XOrg69_patches/ChkIfEv.c.NX.patch
@@ -0,0 +1,59 @@
+--- ./nx-X11/lib/X11/ChkIfEv.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/ChkIfEv.c 2015-02-10 19:13:13.120711494 +0100
+@@ -83,3 +83,56 @@
+ UnlockDisplay(dpy);
+ return False;
+ }
++
++#ifdef NX_TRANS_SOCKET
++
++/*
++ * This is just like XCheckIfEvent() but doesn't
++ * flush the output buffer if it can't read new
++ * events.
++ */
++
++Bool XCheckIfEventNoFlush (dpy, event, predicate, arg)
++ register Display *dpy;
++ Bool (*predicate)(
++ Display* /* display */,
++ XEvent* /* event */,
++ char* /* arg */
++ ); /* function to call */
++ register XEvent *event; /* XEvent to be filled in. */
++ char *arg;
++{
++ register _XQEvent *prev, *qelt;
++ unsigned long qe_serial = 0;
++ int n; /* time through count */
++
++ LockDisplay(dpy);
++ prev = NULL;
++ for (n = 2; --n >= 0;) {
++ for (qelt = prev ? prev->next : dpy->head;
++ qelt;
++ prev = qelt, qelt = qelt->next) {
++ if(qelt->qserial_num > qe_serial
++ && (*predicate)(dpy, &qelt->event, arg)) {
++ *event = qelt->event;
++ _XDeq(dpy, prev, qelt);
++ UnlockDisplay(dpy);
++ return True;
++ }
++ }
++ if (prev)
++ qe_serial = prev->qserial_num;
++ switch (n) {
++ case 1:
++ _XEventsQueued(dpy, QueuedAfterReading);
++ break;
++ }
++ if (prev && prev->qserial_num != qe_serial)
++ /* another thread has snatched this event */
++ prev = NULL;
++ }
++ UnlockDisplay(dpy);
++ return False;
++}
++
++#endif