XWorkstation.st
branchjv
changeset 7098 7eb84645bfe8
parent 7096 fc68855276c5
parent 7092 9159201de216
child 7128 e49af1b43177
--- a/XWorkstation.st	Tue Jan 05 15:39:22 2016 +0100
+++ b/XWorkstation.st	Fri Jan 15 13:11:20 2016 +0000
@@ -5641,12 +5641,10 @@
     "/ where eventPending returns wrong if we do not flush the buffer.
     "/ (especially Win32 & Xlib)
 
-    ConservativeSync == true ifTrue:[self sync].
-
     dispatchingExpose notNil ifTrue:[
-	^ self exposeEventPendingFor:dispatchingExpose withSync:false
-    ].
-    ^ self eventPendingWithSync:false
+        ^ self exposeEventPendingFor:dispatchingExpose withSync:ConservativeSync
+    ].
+    ^ self eventPendingWithSync:ConservativeSync
 
     "Modified: / 28.4.1999 / 11:08:12 / cg"
 !
@@ -5701,20 +5699,20 @@
     OBJ rslt = false;
 
     if (ISCONNECTED) {
-	Display *dpy = myDpy;
-
-	if (XEventsQueued(dpy, QueuedAlready)) {
-	    RETURN (true);
-	}
-
-	ENTER_XLIB();
-	if (doSync == true) {
-	    XSync(dpy, 0);      /* make certain everything is flushed */
-	}
-	if (XPending(dpy)) {
-	    rslt = true;
-	}
-	LEAVE_XLIB();
+        Display *dpy = myDpy;
+
+        if (XEventsQueued(dpy, QueuedAlready)) {
+            RETURN (true);
+        }
+
+        ENTER_XLIB();
+        if (doSync == true) {
+            XSync(dpy, 0);      /* make certain everything is flushed */
+        }
+        if (XEventsQueued(dpy, QueuedAfterFlush)) {
+            rslt = true;
+        }
+        LEAVE_XLIB();
     }
     RETURN ( rslt );
 %}
@@ -5738,17 +5736,12 @@
       the display connection)."
 
 %{  /* UNLIMITEDSTACK */
-    OBJ rslt = false;
-
     if (ISCONNECTED) {
-	/* ENTER ... LEAVE not needed; XEventsQueued will not block */
-	/* ENTER_XLIB(); */
-	if (XEventsQueued(myDpy, QueuedAlready)) {
-	    rslt = true;
-	}
-	/* LEAVE_XLIB(); */
-    }
-    RETURN ( rslt );
+        if (XEventsQueued(myDpy, QueuedAlready)) {
+            RETURN(true);
+        }
+    }
+    RETURN ( false );
 %}
 !