DeviceWorkstation.st
changeset 2953 f9c1d464cb29
parent 2934 33b1988133d3
child 2963 83185d8af958
--- a/DeviceWorkstation.st	Thu Oct 07 12:41:59 1999 +0200
+++ b/DeviceWorkstation.st	Thu Oct 07 12:46:17 1999 +0200
@@ -3856,7 +3856,7 @@
 startDispatch
     "create & start the display event dispatch process."
 
-    |inputSema fd p nm|
+    |inputSema fd p nm checkBlock|
 
     "/
     "/ only allow one dispatcher process per display
@@ -3922,10 +3922,15 @@
     "/ finally, arrange for the processor to signal that semaphore when input
     "/ is available or #eventPending returns true
 
-    "/ fd isNil ifTrue:[
-    "/     fd := -1        "/ has no fileDescriptor (i.e. Windows) - will poll
-    "/ ].
-    Processor signal:inputSema onInput:fd orCheck:[self eventPending].
+    fd isNil ifTrue:[
+        "no fd -- so have to check for input also"
+        checkBlock := [self eventPending].
+    ] ifFalse:[
+        "there is a fd, so checkblock has to check only the internal queue"
+        checkBlock := [self eventQueued].
+    ].
+
+    Processor signal:inputSema onInput:fd orCheck:checkBlock.
 
     "Modified: / 12.12.1995 / 20:52:57 / stefan"
     "Modified: / 24.8.1998 / 18:36:29 / cg"
@@ -6667,6 +6672,6 @@
 !DeviceWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.338 1999-10-04 10:44:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.339 1999-10-07 10:46:17 cg Exp $'
 ! !
 DeviceWorkstation initialize!