--- 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!